CSS中,类的优先级是怎样的?我有个例子看不懂,麻烦高人解答
发布网友
发布时间:2022-04-06 12:03
我来回答
共1个回答
热心网友
时间:2022-04-06 13:33
1.a img 和 img的不同之处:
a img 是代表的是标签a中的图片,仅控制带链接的图片。
img 是代表的是图片,包括已带链接和未带链接的图片。
2.引用类的优先级是采用就近原则。
.content_banner a img{float:left;}
.content_banner a img.aligncenter{display: block; margin-left: auto; margin-right: auto;}
这两条样式其实都采用了,
如果在.content_banner a img.aligncente添加右浮动,那么采用的样式就是.content_banner a img.aligncente。
3.只写a img.aligncenter{display: block; margin-left: auto; margin-right: auto;}有效,因为你的样式控制的是链接中的图片,
写 .aligncenter{display: block; margin-left: auto; margin-right: auto;}这只是代表一个class,但因为这个图片是一个链接图片,所以图片虽然采用了这条样式,但它会被链接样式给覆盖掉。
希望对你有所帮助。追问首先谢谢。
但对后面两个问题,还不太懂。
第2问题中,既然就近原则,
在网页中的语句是
离图最近的声明,是要引用aligncenter这个类的,那么应该是
.content_banner a img.aligncenter{} 比 .content_banner a img{} 更近呀,
为什么不是前者覆盖后者;
第3问题,.aligncenter{}的写法不是等于*.aligncenter{} 通配符的意思么?
那应该是所有标签(包括 a img)都可以引用呀?
追答第2个问题中,是就近原则
但是这里的问题是一个元素是可以采用多个样式,这个你应该知道的。
比如:
body{
color:#555555;
font-size:12px;}
h1{
line-height:30px;
}
页面代码中出现了:
我是标题1
那么这个“我是标题1”采用的样式就应该是:color:#555555;font-size:12px;line-height:30px;
这三个样式。
而我们所谓覆盖的问题就是这个东西已经有了,再出现一个这样的东西,才会覆盖。
你已经有一条:.content_banner a img{float:left;}
而在.content_banner a img.aligncenter这个里面没有出现float属性,这样的话这两个样式就不存在什么覆盖的问题了,而是都被采用了。这下你懂了么