html伪类替换图片,css之Content-替换元素

壹 替换元素

[toc]

1、what 替换元素

我们根据外在盒子可以分为内联元素和块级元素,根据是否具有可替换内容,我们也可以分为替换元素和非替换元素

我们把通过修改某个属性值呈现的内容就可以被替换的元素称为替换元素,这一类都是典型的替换元素

特点:

内容不受页面上的css的影响,样式表现在css作用域之外,如果要替换元素本身的外观,需要类似appearance的属性。或者是浏览器本身暴露的接口。但是直接input[type='checkbox']没办法改变内间距背景色等特性

有自己的尺寸 很多替换元素没有明确尺寸设定的时候,

默认尺寸是300*150px 如果是

-默认是0

表单的替换元素的尺寸和浏览器有关系

在css属性上有一套自己的表现规则 典型的就是vertical-align。 比如它的值是baseline时候,非替换元素就是x下边缘,替换原色就是元素的下边缘

2 、display 与替换元素

所有的替换元素都是内联水平元素

但是表现形式不一样,不同的元素不同的浏览器表现都不一样

ie和chrome的返回值都是一样的,但是firefox在textarea中和绝大多数的input 返回的是inline而不是inline-block,

但是我们不用关心他们的display一样不一样因为

替换元素有很多表现规则和非替换元素不一样。其中之一就是宽度和高度的计算规则。简单描述一下就是:替换元素的displays是inline block和inline-block中的任意一个,尺寸计算规则都是一样的。

3、尺寸计算规则

替换元素有三种尺寸,固有尺寸、html尺寸、css尺寸

固有尺寸 替换元素的原本尺寸,参见what 替换元素第一点

html尺寸 就是这里的width height属性

css 尺寸 通过css的width和height 还有max-width/min-width max-height/min-height

计算规则如下:

没有css尺寸和html尺寸,就用固有尺寸

没有css尺寸就用html尺寸

有css尺寸可就用css属性决定尺寸

如果固有尺寸含有固有的宽高比,但是css和html尺寸只设置了宽或者是高,还是按照原来的宽高比设置

如果上边都不符合,最终表现形式是宽300, 高度是150

内联元素和块级元素使用同一套计算规则

关于img可以查看object-fit的相关属性来实现更好的应用。

4、替换元素与非替换元素

1>、 替换元素与非替换元素只差了一个src

firefox的img如果为空的话,disolay:block;outline:1px solid;宽度会百分之百适应父元素,表现起来就是span ,同时设置宽高也没什么用。完全就是一个非替换元素

chrome也有类似的特性,没有src的同时只要上边有alt的属性和属性值,看起来也和非替换元素的表现形式一致

2>、只差了一个content属性

在chrome浏览器下:

img{content:url(1.jpg)}

上边的效果和1.jpg一样的

还有一点就是,如果图片是有src地址的 ,我们可以通过content属性把图片的内容替换掉。但是改变的仅仅是视觉呈现,如果右键保存的时候,现实的还是原来的src对应的图片

文字边图片的案例如下:

《css世界》

h1{

width:180px;

height:36px;

background:url(logo.png);

text-indent:-999px;

}

# 也可以使用content一行代码实现效果

h1{content:url(logo.png)}

解决办法很完美是不是,但是还是有点缺陷的。我们没办法设置大小,只能是一倍图,导致看来有点模糊,移动端的话建议使用svg图片

5、content与替换元素

content属性生成的对象称之为匿名替换元素。所以content生成的元素和普通元素有很多的不同的特性表现。

我们使用content生成的元素无法选中,同时阅读器和SEO都很不好,所以不要放重要的东西

不能左右::empty伪类

动态生成的值没办法获取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值