如何替换某列元素值_替换元素

1. 替换元素

根据内容是否具有替换内容,我们也可以把元素分为替换元素和非替换元素

替换元素,顾名思义,就是内容可以被替代

<img src="./bg.png" />

这种通过某个属性呈现出内容的元素就是 替换元素

因此,<object>,<img>,<video>,<iframe>, 或者表单元素 <textarea>, <input>

1. 内容的外观不受页面上的 css 的影响,用专业的话讲就是在样式表现在 css 作用于之外,如何更改替换元素的外观?

需要类似 appearance 属性,或者浏览器自身暴露一些样式接口,例如::-ms-check{}可以更改高版本 IE 浏览器下单复选框的内部样式

2. 有自己的尺寸,在web中,很多替换元素在没有明确尺寸的设定,其默认尺寸是300px X 150px 如 <video>,<iframe>,<canvas>

也有很多元素替换元素为0像素,如 <img>图片

3. 在很多 css 属性上有自己的一套表现规则。比较具有代表性的就是 vertical-align 属性,对于替换元素和非替换元素,表现是不太一样的

4. 替换元素的默认 display 值

af5af5f5d0ea5b52c700794805111e79.png


5. 替换元素的尺寸计算规则
1. 固有尺寸
指的是替换元素内容本身原本的尺寸,例如,图片,视频作为一个独立文件存在的时候,都有自己的宽度高度的
2. HTML 尺寸这个概念略微抽象
HTML 尺寸只能根据 HTML属性去改变
比如,img 的width,height 属性
input 的size属性, textarea的cols,rows属性
<img width="100" height="100">
<input size="20" type="file"/>
<textarea cols="20" rows="20"></textarea>
3. css 尺寸,特指可以通过 css 的width,height或者max-width/min-width和max-height/min-height设置尺寸,对应盒子尺寸中的 content-box
三者的优先级如下
css 尺寸>HTML 尺寸>固有尺寸
web 开发的时候,为了提高图片加载性能以及节省带宽费用,首屏加载以下的图片就会通过滚屏加载的异步方式,然后,这个即将被一部加载的图片为了布局稳健,体验良好,往往会使用一张透明的图片占位,例如:
<img src="transparent.png">
实际上,这个透明的展位图也是多余的资源,我们直接:
<img>
然后,配合以下的css样式可以实现一样的多余效果
img{visibility: hidden}
img[src]{visibility: visible}
注意,这里<img>直接没有 src 属性,再强调一遍,是直接没有,不是 src="", src=""在很多浏览器下,依然会有请求,而且请求的是当前页面的数据,当图片的 src 属性缺省的时候,图片不会有任何请求,是最高效率的实现 方式
css 世界中的替换元素的固有尺寸有一个很重要的特性,那就是“我们无法改变这个替换元素的固有尺寸”
div::before{
content: url(1.jpg);
display: block;
width: 200px;
height: 200px;
}
width和height属性都被直接无视了,这张图片原始尺寸大小256px X 192px
4. 替换元素和非替换元素的距离有多远
观点1:替换元素和非替换元素之间只隔一个 src 属性
平时使用的图片肯定都会使用 src 属性去掉,所以难免会思维定式,认为<img>等同于图片,实际上完全不是,如果把 src 属性去掉,
<img> 其实就是一个和 <span>类似的普通标签的内联样式,也就是成了一个非替换元素
观点2:替换元素和非替换元素之间只隔着了 一个 CSS content 属性
替换元素之所以为替换元素,就是因为其内容可替换,而这个内容就是 margin,border,padding,和content,这四个盒子中 的 content box
对应的 css 属性的 content,所以理论上讲,content属性决定是替换元素还是非替换元素
img{content: url(1.jpg)}
<img src="1.png">
有待续,敬请期待下一篇文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值