html - CSS3 :not() selector Issue with child elements

标签 html css css-selectors

我在使用 css3:not 选择器取消选择子元素时遇到问题。

我有一个 p 元素,其中包含 span 作为子元素和带有 anchor 元素的子子元素。我想让 p 中包含的文本的不透明度不包括任何 anchor 元素。

我在这里做错了什么?

@import url(https://fonts.googleapis.com/css?family=Lato);

a {
  color: #fde217;
}

.contactinfo-wrap {
  position: relative;
  margin: 40px;
  font-family: Lato;
  background-color: #00254a;
  color: #ffffff;
  padding: 30px;
}

.contactinfo-wrap p:not(a) {
  color: #ffffff;
  opacity: .6;
}


.contactinfo-wrap p:not(strong) {
  color: #ffffff;
}
<div class="contactinfo-wrap">
  <p><strong><span class="details">Postal Address</span></strong></p>
  <p>
    <span class="icon"><i class="fa fa-map-marker fa-lg"></i></span>
    <span class="details">PO Box 35142 Collins Street West<br>
         120 King Street, Melbourne<br>
         Victoria 2000 Australia</span></p>
  <p class="phone">
    <span class="icon"><i class="fa fa-phone fa-lg"></i></span>
    <span class="details">+60 0 0000 0000</span></p>
  <p>
    <span class="icon"><i class="fa fa-envelope fa-lg"></i></span>
    <span class="details"><a href="mailto:yourname@domain.com">yourname@domain.com</a></span>
  </p>

</div>

最佳答案

p:not(a) 表示“一个元素是 p 但不是 a”(所有 p 元素)。

CSS 无法根据其后代的特征来选择元素。

最好的办法是预处理 HTML(用编程语言)并将 class 属性添加到要匹配的段落。

关于html - CSS3 :not() selector Issue with child elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35650492/

相关文章:

JQuery 选择 td 中的一个元素

python - 如何在选择器中使用部分文本而不是精确文本?

java - 在 webdriver 中使用 cssSelecter 匹配元素的更严格方法是什么

javascript - 鼠标悬停在选择标签中的选项

javascript - Opera:在 JavaScript 中绘制椭圆形时出现问题

jquery - 相对定位扩展 div 的内容不会压低 sibling

html - 如何将此 css 隔离到适当且唯一的类中,以便它们不会干扰其他页面布局

html - 表格内的垂直线嵌套/交错组

php - 更新php表中的数据时黑屏

javascript - 如何选择:after element using jquery