ToB企服应用市场:ToB评测及商务社交产业平台

标题: CSS选择器的全面解析与实战应用 [打印本页]

作者: 半亩花草    时间: 2024-10-1 12:34
标题: CSS选择器的全面解析与实战应用

选择器的作用:选择页面中对应的标签,方便后续设置样式
权重
选择器示例权重值!importantcolor: #000 !important正无穷大内联样式style=“…”1 0 0 0ID选择器#id0 1 0 0类,伪类、属性选择器.content1 0 0 0标签选择器、伪元素选择器div0 0 0 1继续属性inherit0 0 0 0
一、根本选择器

1.1 通配符选择器(*)


1. 统一重置样式

  1. * {
  2.     margin: 0;
  3.     padding: 0;
  4.     box-sizing: border-box;
  5.     line-height: 1;
  6.     font-size: 16px;
  7.     font-family: Arial, sans-serif;
  8. }
复制代码
1.2 清除浮动

  1. *::after {
  2.     content: "";
  3.     display: table;
  4.     clear: both;
  5. }
复制代码
2.标签选择器(div)


1. 全局样式重置

  1. body, h1, h2, h3, p, ul, ol, li {
  2.     margin: 0;
  3.     padding: 0;
  4.     box-sizing: border-box;
  5.     font-family: Arial, sans-serif;
  6. }
复制代码
2. 常见元素的样式界说

  1. p {
  2.     line-height: 1.6;
  3.     margin-bottom: 16px;
  4.     color: #333;
  5. }
  6. h1, h2, h3 {
  7.     margin-bottom: 10px;
  8.     color: #222;
  9. }
复制代码
1.3 类名选择器(.class)


1. 组件化样式管理

  1. <div class="card">
  2.     <h2 class="card-title">Card Title</h2>
  3.     <p class="card-content">This is some card content.</p>
  4. </div>
复制代码
  1. .card {
  2.     border: 1px solid #ccc;
  3.     padding: 20px;
  4.     border-radius: 8px;
  5. }
  6. .card-title {
  7.     font-size: 18px;
  8.     font-weight: bold;
  9. }
  10. .card-content {
  11.     font-size: 14px;
  12.     color: #555;
  13. }
复制代码
2. 元素样式管理

  1. <button class="button">Submit</button>
  2. <button class="button disabled" disabled>Disabled</button>
复制代码
  1. .button {
  2.     background-color: blue;
  3.     color: white;
  4.     padding: 10px 20px;
  5.     border: none;
  6.     cursor: pointer;
  7. }
  8. .button.disabled {
  9.     background-color: grey;
  10.     cursor: not-allowed;
  11. }
复制代码
4. id选择器(#id)


1. 唯一元素的样式控制

  1. <header id="main-header">
  2.     <h1>Welcome to My Website</h1>
  3. </header>
复制代码
  1. #main-header {
  2.     background-color: #333;
  3.     color: white;
  4.     padding: 20px;
  5.     text-align: center;
  6. }
复制代码
2. 结合javascript操作DOM元素

  1. <button id="submit-button">Submit</button>
复制代码
  1. #submit-button {
  2.     background-color: #007bff;
  3.     color: white;
  4.     border: none;
  5.     padding: 10px 20px;
  6.     cursor: pointer;
  7. }
复制代码
  1. document.getElementById('submit-button').addEventListener('click', function() {
  2.     alert('Button clicked!');
  3. });
复制代码

二、 属性选择器(attr)


1. 对 存在xx属性 的元素设置特定样式

  1. input[required] {
  2.     border: 2px solid red;
  3. }
复制代码
2. 对 存在xx属性且属性值匹配 的元素设置特定样式

  1. input[type="text"] {
  2.     width: 300px;
  3. }
  4. input[type="submit"] {
  5.     background-color: blue;
  6.     color: white;
  7. }
复制代码
3. 对 存在xx属性且包含属性值xx 的元素设置特定样式

  1. a[href*="example"] {
  2.     font-size: 2em;
  3. }
复制代码
4. 对 属性值以指定的值开头的 元素设置特定样式

  1. a[href^="https"] {
  2.     color: red;
  3.     font-weight: bold;
  4. }
复制代码
5. 对 属性值以指定的值结尾 的元素设置特定样式

  1. a[href$=".pdf"] {
  2.     color: red;
  3.     font-weight: bold;
  4. }
复制代码
6. 对 属性值是以空格分隔的值之一 的元素设置特定样式

  1. a[href~="example"] {
  2.     padding: 2px;
  3. }
复制代码

7. 状态控制

  1. nav[data-visible="true"] {
  2.     display: block;
  3. }
  4. nav[data-visible="false"] {
  5.     display: none;
  6. }
复制代码

三、伪类选择器(:)

1. :hover

  1. button:hover {
  2.     background-color: #ddd;
  3.     cursor: pointer;
  4. }
复制代码

2. :active

  1. button:active {
  2.     background-color: #bbb;
  3. }
复制代码
3. :focus

  1. input:focus {
  2.     border-color: blue;
  3.     outline: none;
  4. }
复制代码
4. :nth-child(n)

  1. li:nth-child(3) {
  2.     background-color: #fff;
  3. }
  4. li:nth-child(n+3) {
  5.     background-color: #111;
  6. }
  7. li:nth-child(odd) {
  8.     background-color: #222;
  9. }
  10. li:nth-child(even) {
  11.     background-color: #333;
  12. }
复制代码
5. :first-child

  1. p:first-child {
  2.     font-weight: bold;
  3. }
复制代码
6. :last-child

  1. p:last-child {
  2.     margin-bottom: 0;
  3. }
复制代码
7. :not(selector)

  1. input:not([type="submit"]) {
  2.     width: 100%;
  3. }
复制代码
8. :checked

  1. input[type="checkbox"]:checked {
  2.     background-color: green;
  3. }
复制代码
9. :disabled

  1. input:disabled {
  2.     background-color: #e0e0e0;
  3.     cursor: not-allowed;
  4. }
复制代码
10. :first-of-type

  1. p:first-of-type {
  2.     color: red;
  3. }
复制代码
11. :last-of-type

  1. p:last-of-type {
  2.     color: blue;
  3. }
复制代码
12. :empty

  1. div:empty {
  2.     display: none;
  3. }
复制代码
13. :nth-of-type(n)

  1. /* 奇数段 */
  2. p:nth-of-type(2n + 1) {
  3.   color: red;
  4. }
  5. p:nth-of-type(odd) {
  6.   color: red;
  7. }
  8. /* 偶数段 */
  9. p:nth-of-type(2n) {
  10.   color: blue;
  11. }
  12. p:nth-of-type(even) {
  13.   color: blue;
  14. }
  15. /* 第一段 */
  16. p:nth-of-type(2) {
  17.   font-weight: bold;
  18. }
  19. /* 这将匹配第三个段落,因为它匹配的元素是 2n+1 并且具有 fancy 类。
  20.    第二个段落具有 fancy 类,但不匹配,因为它不是:nth-of-type(2n+1)。
  21. */
  22. p.fancy:nth-of-type(2n + 1) {
  23.   text-decoration: underline;
  24. }
复制代码
场景
这些伪类选择器在日常的 CSS 开辟中非常实用,可以或许根据元素的状态、位置等特性来准确控制样式,从而提升用户体验和界面设计的灵活性。
MDN-CSS伪类选择器

四、 伪元素选择器(::)

1. ::before

2. ::after

3. ::first-line

  1. /* 设置多行文本框 textarea 第一行文本的样式 */
  2. textarea::first-line {
  3.    font-size: 1.3em;
  4.    font-weight: 600;
  5.    margin-bottom: 8px;
  6. }
复制代码
4. ::first-letter

  1. /* 设置 p 元素的第一个字符的样式 */
  2. p::first-letter {
  3.    color: #000;
  4.    font-weight: 600;
  5. }
复制代码
5. 滚动条

  1. overflow:scroll /* x y 方向都会*/
  2. overflow-x:scroll /*只是x方向*/
  3. overflow-y:scroll  /*只是y方向*/
复制代码

设置scrollbar的为CSS伪元素,对应上图的数字:
  1. ::-webkit-scrollbar              { /* 1 */ }
  2. ::-webkit-scrollbar-button       { /* 2 */ }
  3. ::-webkit-scrollbar-track        { /* 3 */ }
  4. ::-webkit-scrollbar-track-piece  { /* 4 */ }
  5. ::-webkit-scrollbar-thumb        { /* 5 */ }
  6. ::-webkit-scrollbar-corner       { /* 6 */ }
  7. ::-webkit-resizer                { /* 7 */ }
  8. ::-webkit-scrollbar                                    //滚动条整体部分
  9. ::-webkit-scrollbar-button                   //滚动条两端的按钮
  10. ::-webkit-scrollbar-track                   // 外层轨道
  11. ::-webkit-scrollbar-track-piece            //内层轨道,滚动条中间部分(除去)
  12. ::-webkit-scrollbar-thumb                         //滚动条里面可以拖动的那个
  13. ::-webkit-scrollbar-corner                   //边角
  14. ::-webkit-resizer                                   //定义右下角拖动块的样式
复制代码


五、 组合选择器

1. 后代选择器(ancestor descendant)

2. 子选择器(parent > child)

3. 相邻兄弟选择器(prev + next)

4. 通用兄弟选择器(prev ~ siblings)

5. 并集选择器

  1. /* p div span h1 文字颜色是红色 */
  2. /* 选择器1, 选择器2 {} */
  3. p,
  4. div,
  5. span,
  6. h1 {
  7.   color: red;
  8. }
复制代码
6. 交集选择器

  1. /*必须是p标签,而且添加了box类 */
  2. p.box {
  3.   color: red;
  4. }
  5. /* .box是类选择器 */
复制代码
7. 子元素选择器(>)
  1. div > p {
  2.     color: purple;
  3. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4