在css中::和〜做什么?

mon*_*onk 24 css css-selectors pseudo-element

我正在查看一个人在twitter上制作的代码,它是这样的:

div::after {
-webkit-transform: rotate(2deg);
}

div ~ div {
-webkit-transform: rotate(0deg);
}
Run Code Online (Sandbox Code Playgroud)

它是什么 ?

Roy*_*mir 24

双冒号取代了CSS3中伪元素的单冒号选择器,以明确区分伪类和伪元素.为了向后兼容,对于预CSS3选择器,单冒号语法是可接受的.所以,:after是一个伪类,:: after是一个伪元素.


CSS3中提供了通用兄弟选择器,此选择器中使用的组合器是波形符(〜).

选择器匹配给定元素的兄弟元素.如果它是h2元素的兄弟,这个例子将匹配ap元素:

http://reference.sitepoint.com/css/generalsiblingselector

http://www.evotech.net/blog/2007/05/after-v-after-what-is-double-colon-notation/


Lov*_*ger 21

波形符(〜)是兄弟选择器

h2 ~ p { color:red; }
Run Code Online (Sandbox Code Playgroud)

例如,将在下面的代码中使段落变红

<h2>Heading</h2>
<p>The selector above matches this paragraph.</p>
<p>The selector above matches this paragraph.</p>
Run Code Online (Sandbox Code Playgroud)

::用于::before::after伪元素,它们content:允许你在每个链接之前放置一个图标

a::before { content:url(link.png); }
Run Code Online (Sandbox Code Playgroud)

  • `~`与兄弟姐妹完全不匹配 - 只有兄弟姐妹先于第一种类型的元素.在你的例子中`<h2>`之前的`<p>`不匹配. (10认同)

Guf*_*ffa 9

::用于伪构件在CSS3.

~一般兄弟组合子在CSS3,它是用来选择跟随在同一水平另一个元件的元件.