CSS语法,选择器

2020-05-24  本文已影响0人  HGS

CSS:

  1. 定义:css全称是层叠样式表;
  2. 作用:为页面内容设置好看的样式,渲染页面内容;
  3. 注释:css注释格式:/* 注释的内容 */;被注释的语句不会生效;

CSS基本语法

两种语法:

例://h1是选择器,color是属性,red是值;
h1{
  color: red;
}

CSS选择器

作用:定位给与样式的HTML元素

选择器分类

 p {
      color: red;
    }
 div {
      color:blue
    }

2. lD选择器:用#标记

<p id="box">hello</p>

<style>
#box {
     border: 1px solid red;
}
</style>

3. 类选择器:用.标记

<p class="box active">hello</p>

<style>
.active {
     font-size:20px;
  }
</style>

4. 通用选择器:用*标记所有的元素,.box *是表示box里面的所有元素

* {
    box-sizing: border-box;
}

.box * {
    font-size: 24px;
}

5. 属性选择器(不常用)
5.1 [attr]选择包含attr属性的所有元素,不论attr的值为何。

[disabled] {
border: 1px solid #ccc;
}

5.2 [attr=val]仅选择attr属性被赋值为val的所有元素。

[data-color="gray"] {
color: #666;
}
<p class="author">hello</p>
<p class="detail">hahaha</p>

<style>
.author, .detail {
color: red;
}
</style>
  1. A B:后代选择器,可以选中A的后代B元素(A和B中间一定要保留空格)
<body>
<ul class="detail">
  <li>
    <ul>
      <li>lalala</li>
    </ul>
  </li>
  <li>lalala</li>
  </ul>
  <style>
//选中所有的li标签
  .detail li {
    border: 1px solid red;
    padding: 10px
  }
  </style>
</body>

实现效果:


选中ul标签里面的li标签
  1. A>B:子元素选择器,可以选中A的直接子元素B(A和B之间有没有空格都可以)
<body>
  <ul class="detail">
  <li>
    <ul>
      <li>aaa</li>
      <li>bbb</li>
    </ul>
  </li>
  <li>ccc</li>
  </ul>
  
  <style>
  .detail > li {
    border:1px solid red;
    padding:10px;
  }
  </style>
</body>

实现效果:


选中ul标签直接li标签
  1. A + B:直接相邻选择器,可以选中A的下一个相邻元素B
<body>
  <ul>
   <li class="active">aaa</li>
   <li>bbb</li>
   <li>ccc</li>
  </ul>
  <style>
  .active + li {
    color: red;
  }
  </style>

实现效果:


A的相邻元素
  1. A ~ B:普通相邻选择器,选中A的后面同级B(无论相邻与否)
<body>
  <ul>
   <li class="active">aaa</li>
   <li>bbb</li>
   <li>ccc</li>
  </ul>
  <style>
  .active ~ li {
    color: red;
  }
  </style>
</body>

实现效果:


A的后面全部元素
1. :pseudo-class-name

①. 伪类是一个选择器,用来选择处于特定状态下的元素;
②. 比如某种类型元素的第一个,元素的鼠标放置上的状态
③. 类似给元素额外加了一个class

2. 伪类/first-child

作为自己父亲的第n个孩子
first-child第一个孩子、last-child最后一个孩子、nth-child(n)第n个 孩子

<body>
  <div class="box">
    <h2>标题</h2>  <!--红色-->
    <p>aaa</p>   <!--粉色-->
    <p>bbb</p>  <!--蓝色-->
  </div>
  <style>
   .box :first-child {
     color: red;
   }  
   .box :last-child {
     color: blue;
   }
    .box :nth-child(2) {
      color: pink;
    }
  </style>

</body>

实现效果:


first-child
3. 伪类/first-of-type

作为自己父亲当前标签类型的第x个孩子

first-of-type
  1. a标签的四种状态:①:a:link(未被访问状态) ②:a:visited(访问后的状态) ③:a:hover (鼠标悬停状态) ④:a:active(正在点击状态)

  2. 顺序排列:link - visited - hover - active

  3. 顺序排列原因:

//顺序
<body>
 <a href="#1">1</a>
 <a href="#2">2</a>
 <a href="#3">3</a>
  <style>
  a:link {
    color: red;
  }
  a:visited {
    color: grey;
  }
  a:hover {
    color: blue;
  }
  a:active {
    color: yellow;
  }
  </style>
</body>

1.被勾选的表单元素:checked

默认样式比重比较大,设置的样式没有生效 去掉默认样式,设置的样式即可生效

2. 选中被禁用的表单元素:disabled

选中被禁用的表单元素

3. 选中被激活的表单元素:focus

选中被激活的表单元素
//选中页面上id为当前hash的元素
:target
//选中不为XX的元素
:not(xx)
  1. ::pseudo-element-name

    • 其表现像给元素里加了个标签,而不类似于给元素加class
    • 早期的伪元素也使用两个点:,现代浏览器支持早期用法
  2. ::before ::after

    • 在元素内插入一段内容,作为元素的第一个/最后一个孩子
    • 必须有content属性,如果没有相当于白写。
    • 作用:创作隐藏的标签,常用来替代图标,无实际意义的标签,HTML就会很简洁。
::before和::after
  1. ::first-link:选中段落的第一行
    选中段落的第一行
  1. ::first-letter:选中段落的第一个字符
    选中段落的第一个字符
  1. ::selection:匹配被鼠标选中的文字内容
    匹配被鼠标选中的文字内容

参考资料:饥人谷课件

上一篇 下一篇

猜你喜欢

热点阅读