欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

css3(4)

程序员文章站 2024-01-25 09:54:40
...
  1. css选择器的执行效率:
    1.id选择器(#myid)
    2.类选择器(.myclassname)
    3.标签选择器(div,h1,p)
    4.相邻选择器(h1+p)
    5.父子选择器(ul > li)
    6.后代选择器(li a)
    7.通配符选择器(*)
    8.属性选择器(a[rel=”external”])
    9.伪类选择器(a:hover, li:nth-child)
  2. * 用于匹配任何的标记
  3. > 用于指定父子节点关系(父子选择器)
  4. E + F 毗邻元素选择器,匹配所有 紧随 E元素之后的同级元素F
  5. E ~ F 匹配 所有 E元素之后的同级元素F
    注意:除了相邻选择器,其他(*,>,~)的都不建议常用
  6. 名称[表达式]
    a . E[att] 匹配所有具有att属性的E元素
    ([att]获取所有的定义了att的标签;E[att=val] 匹配所有att属性等于“val”的E元素;
    b . [att=val] 获取所有定义了att属性并且属性值等于val的标签;
    c . [att^=val]获取所有定义了att属性并且属性值以val开头的标签;
    d . [att$=val]获取所有定义了att属性并且属性值以val结尾的标签;
    e . [att*=val]获取所有定义了att属性并且属性值包含val字符的标签;
    f . [att~=val]获取所有定义了att属性并且属性值包含val单词的标签;
    g . [att|=val]获取所有定义了att属性并且属性值等于val或者以val-开头的标签。
  7. 伪类/伪元素
    css 伪类用于向某些选择器添加特殊的效果。
    css 伪元素用于将特殊的效果添加到某些选择器。
    可以明确两点,第一两者都与选择器相关,第二就是添加一些“特殊”的效果。
    这里特殊指的是两者描述了其他 css 无法描述的东西。
    伪类种类伪元素种类区别:
    这里用伪类 :first-child 和伪元素 :first-letter 来进行比较。
  p>i:first-child {color: red}
**注意**:给在父元素p中的第一个i添加样式。
  <p><i>first</i><i>second</i></p> 
  //伪类 :first-child 添加样式到第一个子元素`    
  如果我们不使用伪类,而希望达到上述效果,可以这样做:
  .first-child {color: red}<p><i class="first-child">
  first</i><i>second</i></p>
  即我们给第一个子元素添加一个类,然后定义这个类的样式。
  那么我们接着看看为元素:
  p:first-letter {color: red}
**注意:该元素必须是块级元素,给p标签里面内容的第一个字母添加样式。**
  <p>i am stephen lee.</p> 
  //伪元素 :first-letter 添加样式到第一个字母
  那么如果我们不使用伪元素,要达到上述效果,应该怎么做呢?
  .first-letter {color: red}
  <p><span class='first-letter'>i</span> am stephen lee.</p>
  即我们给第一个字母添加一个 span,然后给 span 增加样式。
  两者的区别已经出来了。那就是:
  伪类的效果可以通过添加一个实际的类来达到,
  这也是为什么他们一个称为伪类,一个称为伪元素的原因。
  总结:
  伪元素和伪类之所以这么容易混淆,是因为他们的效果类似而且写法相仿,
  而伪元素则用两个冒号来表示。
  :pseudo-classes::pseudo-elements但因为兼容性的问题,
  所以现在大部分还是统一的单冒号,但是抛开兼容性的问题,
  我们在书写时应该尽可能养成好习惯,区分两者。
  简单的说呢:伪元素的权重比伪类高,
  比如一个容器的为元素和伪类都定义了同一属性,但值不一样,那么将采用伪元素的。 
  从规范的角度伪元素一个页面只使用一次,而伪类可以多次使用。
  伪元素产生新对象,在dom中看不到,但是可以操作;伪类是dom中一个元素的不同状态;
  1. 常用的伪类
    a:hover,a:link,a:active,a:visited,:focus /动态伪类/
    :disabled,:enabled,:checked,:read-only,:read-write /UI状态伪类/
    :read-only 只读状态 在input上比:disabled显示效果要好。
    input type=”text” readonly:记得在input里面设置只读属性。
    :read-write 非只读状态
    css3伪类
    :nth-child(n)其父元素的第n个元素(如:p:nth-child(2){color:red;} p元素是其父元素的第2个元素的话字体颜色就是红色)
    :nth-last-child(n) 其父元素的倒数第n个元素
    :nth-of-type(n) (如:p:nth-of-type(2){color:red;} p元素是其父元素的第2个p元素的话字体颜色就是红色)
    :first-child 其父元素的第一个元素
    :last-child 其父元素的最后一个元素
    nth-last-of-type(n) (如:p:nth-last-of-type(2){color:red;} p元素是其父元素的倒数2个p元素的话字体颜色就是红色)
    :first-of-type 其父元素的第一个p元素
    :last-of-type 其父元素的最后一个p元素
    :not() /否定伪类选择器/ (如:p:not(.a){color:red;})

  2. 常用的伪元素

<style type="text/css">
p::before   p::after
{
content:"台词:";
}
</style>
</head>
<body>
<p>我是唐老鸭。</p>
<p>我住在 Duckburg。</p>
<p><b>注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。</p>
</body>
::first-letter
<style type="text/css">
p::first-letter  
**注意**只适用于块标签
{
color:red;
}
</style>
</head>
<body>
<p>我是唐老鸭。</p>
<p>我住在 Duckburg。</p>
<p><b>注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。</p>
</body>
::first-line
**注意**只适用于块标签
<style type="text/css">
p::first-line
{
color:red;
}
</style>
</head>
<body>
<p>我是唐老鸭。</p>
<p>我住在 Duckburg。</p>
<p><b>注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。
注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。
注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。
注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。</p>
</body>
::selection
<style type="text/css">
::selection
**注意:就这样用,其他设置方法可能不起作用(如:p::selectionfont-weight:bold;)
好像只能设置字体颜色和背景颜色**
{
color:red;
background-color:#00F;
}
</style>
</head>
<body>
<p>我是唐老鸭。</p>
<p>我住在 Duckburg。</p>
<p><b>注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。
注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。
注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。
注释:</b>对于在 IE8 中工作的 :before,必须声明 DOCTYPE。</p>
</body>
  1. css权重:
    css3(4)
<style>
/*A>B>C>D>0*/
.main-content{color:#666;}/*0*/
h3{color:#f00;}/*D*/
.h3{color:#0f0;}/*C*/
.main-content h3{color:#00f;}/*CD*/
.main-content .h3{color:#0ff;}/*CC*/
#h3{color:#ff0;}/*B*/
</style>
</head>
<body>
<div class="main-content">
   <h3 class="h3" id="h3">你好</h3>
</div>
</body>
相关标签: css3