【前端中css基础——系列4】css实现固定宽高比;css中伪元素

系列文章总结

【前端中css基础——系列1】盒模型与flex布局
【前端中css基础——系列2】css中浮动与垂直居中显示
【前端中css基础——系列3】css中模块化;css动画;css单位
【前端中css基础——系列4】css实现固定宽高比;css中伪元素
【前端中css基础——系列5】BFC与IFC;绝对定位与相对定位和固定位置
【前端中css基础——系列6】单行多行文本截断;实现三角形圆形



一、css实现固定宽高比,随屏幕自适应

在最近做项目时,因为使用了两个屏幕,一个分屏的屏幕尺寸要比笔记本电脑屏幕大一些,就造成了使用固定值设置宽高的元素在两边屏幕呈现出不一样的布局与大小。于是查了点资料进行了一些修改就完成了,下面是一些总结:

1.1 方案一:宽高设置为vw,vh

<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8" />
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
			}
			.container {
				width: 100%;
				/*只是为了证明宽高不等而已*/
				height: calc(100vw + 100px);
				background: skyblue;
				display: flex;
				justify-content: center;
				align-items: center;
			}
			.box {
				width: 40vw;
				height: 40vw;
				background: red;
			}
		</style>
	</head>
	<body>
		<div class="container">
			<div class="box">
			</div>
		</div>
	</body>
</html>

1.2 方案二:padding-bottom实现普通元素固定宽高比

.wrapper {
width: 40vw;
}
.intrinsic-aspect-ratio-container {
width: 100%;
height: 0;
padding: 0;
padding-bottom: 75%;
margin: 50px;
background-color: lightsalmon;
}


1.3 方案三:指定宽度或者高度值,另一边自动计算就可以了

.img-wrapper {
width: 50vw;
margin: 100px auto;
padding: 10px;
border: 5px solid lightsalmon;
font-size: 0;
}

img {
width: 100%;
height: auto;
}

1.4 方案四:aspect-ratio属性指定元素宽高比

/* 高度随动 */
.box1 {
width: 100%;
height: auto;
aspect-ratio: 16/9;
}

/* 宽度随动 */
.box2 {
height: 100%;
width: auto;
aspect-ratio: 16/9;
}

二、伪元素

2.1伪元素是什么

在这里插入图片描述

伪元素是他们不是真正的页面元素,html没有对应的元素,但是其用法和行为与真正的页面元素一样,可以对其使用诸如页面元素一样的css样式,表面上看上去貌似是页面的某些元素来展现,实际上是css样式展现的行为,因此被称为伪元素。

伪元素可以在真正的页面元素内部之前后之后添加新的内容:

<p>hello world</p>
 
    <style>
 
        p:before{content: "this is inserted before hello world! "}
 
        p:after{content: "this is inserted after hello world"}
 
    </style>

这个效果就相当于这个html结构:

<p>
 
        <span>this is inserted before hello world!</span>
 
        hello world
 
        <span> this is inserted after hello world</span>
 
    </p>


2.2 before::和after::的特点

伪元素:before和:after添加的内容默认是inline元素;这个两个伪元素的content属性,表示伪元素的内容,设置:before和:after时必须设置其content属性,否者伪元素就不起作用。

content属性值的内容如下:

  1. 字符串,原样输出
  2. 属性,属性名
  3. url,引用外部资源
  4. counter ()

2.3 伪元素的特点

  • 伪元素不属于文档,js不能操作它。
  • 伪元素属于主元素的一部分,因此点击为元素触发的时主元素的click事件
  • 大部分块级元素也可以设置伪元素,但是像img可替换元素,因为其外观和尺寸由外部资源决定,那么外部资源正确加载,就会替换掉其内部内容,这时伪元素也会被替换掉,但是当外部资源加载失败时,设置的伪元素就可以起作用。

码字不易~, 各位看官要是看爽了,可不可以三连走一波,点赞皆有好运!,不点赞也有哈哈哈~~~

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

让子弹飞一会儿=>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值