日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > CSS >内容正文

CSS

十三、CSS 3新特性详解(一)——属性、结构伪类、伪元素选择器,nth-child与nth-of-type区别,2D rotate,calc函数、滤镜filter、过渡transition

發布時間:2024/7/5 CSS 43 豆豆
七、CSS3 屬性選擇器(上)
  • 什么是 CSS3

    • 在 CSS2 的基礎上拓展、新增的樣式
  • CSS3 發展現狀

    • 移動端支持優于 PC 端
    • CSS3 目前還草案,在不斷改進中
    • CSS3 相對 H5,應用非常廣泛
  • 屬性選擇器列表

  • 屬性選擇器代碼演示
    (1)E[att] 選擇具有att屬性的E元素

    (2)E[att = ‘val’] 選擇具有att屬性并且屬性值為val的E元素

    (3)E[att^ = ‘val’] 選擇具有att屬性并且屬性值以val開頭的E元素



    (4)E[att$ = ‘val’] 選擇具有att屬性并且屬性值以val結尾的E元素



    注意:類選擇器、屬性選擇器、偽類選擇器的權重均為10。

    button {cursor: pointer; } button[disabled] {cursor: default }
  • 八、CSS3 屬性選擇器(下)
  • 代碼演示

    input[type=search] {color: skyblue; }span[class^=black] {color: lightgreen; }span[class$=black] {color: lightsalmon; }span[class*=black] {color: lightseagreen; }
  • 九、結構偽類選擇器
  • 屬性列表

    ?

  • 代碼演示

    ul li:first-child {background-color: lightseagreen; }ul li:last-child {background-color: lightcoral; }ul li:nth-child(3) {background-color: aqua; }
  • 十、nth-child 參數詳解
  • nth-child 詳解

    • 注意:本質上就是選中第幾個子元素

    • n 可以是數字、關鍵字、公式

    • n 如果是數字,就是選中第幾個

    • 常見的關鍵字有 even 偶數、odd 奇數

    • 常見的公式如下(如果 n 是公式,則從 0 開始計算)

    • 但是第 0 個元素或者超出了元素的個數會被忽略


  • ?

  • 代碼演示
  • <style>/* 偶數 */ul li:nth-child(even) {background-color: aquamarine;}/* 奇數 */ul li:nth-child(odd) {background-color: blueviolet;}/*n 是公式,從 0 開始計算 */ul li:nth-child(n) {background-color: lightcoral;}/* 偶數 */ul li:nth-child(2n) {background-color: lightskyblue;}/* 奇數 */ul li:nth-child(2n + 1) {background-color: lightsalmon;}/* 選擇第 0 5 10 15, 應該怎么選 */ul li:nth-child(5n) {background-color: orangered;}/* n + 5 就是從第5個開始往后選擇 */ul li:nth-child(n + 5) {background-color: peru;}/* -n + 5 前五個 */ul li:nth-child(-n + 5) {background-color: tan;} </style>
    十一、nth-child 和 nth-of-type 的區別
  • 代碼演示
  • <style>div :nth-child(1) {background-color: lightblue;}div :nth-child(2) {background-color: lightpink;}div span:nth-of-type(2) {background-color: lightseagreen;}div span:nth-of-type(3) {background-color: #fff;} </style>


    上圖代碼中為第一個孩子設置的紅色不生效!

    上圖代碼中的第一個孩子設置的藍色生效了,也就是熊大所在行的背景顏色變成藍色。

  • 區別

    • nth-child 選擇父元素里面的第幾個子元素,不管是第幾個類型【E:nth-child(n) 是先對父元素里面所有的孩子進行排序,找到第n個孩子,然后再看是否和E匹配】
    • nth-of-type 選擇指定類型的元素【E:nth-of-type(n) 是先去匹配E,然后再對父元素里面指定的子元素進行排序,根據E找第n個孩子】
  • 十二、偽元素選擇器
  • 偽類選擇器
    ?

  • 偽類選擇器注意事項

    • before 和 after 必須有 content 屬性
    • before 在內容前面,after 在內容后面
    • before 和 after 創建的是一個元素,但是屬于行內元素
    • 創建出來的元素在 Dom 中查找不到,所以稱為偽元素
    • 偽元素和標簽選擇器一樣,權重為 1
  • 代碼演示

    <style>div {width: 100px;height: 100px;border: 1px solid lightcoral;}div::after,div::before {width: 20px;height: 50px;text-align: center;display: inline-block;}div::after {content: '德';background-color: lightskyblue;}div::before {content: '道';background-color: mediumaquamarine;}</style>
  • 十三、偽元素的案例
  • 添加字體圖標

    p {width: 220px;height: 22px;border: 1px solid lightseagreen;margin: 60px;position: relative; } p::after {content: '\ea50';font-family: 'icomoon';position: absolute;top: -1px;right: 10px; }
  • 偽元素清除浮動


  • 十四、2D 轉換之 translate
  • 2D 轉換
    • 2D 轉換是改變標簽在二維平面上的位置和形狀

    • 移動: translate

    • 旋轉: rotate

    • 縮放: scale

  • translate 語法
    • x 就是 x 軸上水平移動
    • y 就是 y 軸上水平移動
    transform: translate(x, y) transform: translateX(n) transfrom: translateY(n)
  • 重點知識點

    • 2D 的移動主要是指 水平、垂直方向上的移動
    • translate 最大的優點就是不影響其他元素的位置
    • translate 中的100%單位,是相對于本身的寬度和高度來進行計算的
    • 行內標簽沒有效果
  • 代碼演示

  • div {background-color: lightseagreen;width: 200px;height: 100px;/* 平移 *//* 水平垂直移動 100px *//* transform: translate(100px, 100px); *//* 水平移動 100px *//* transform: translate(100px, 0) *//* 垂直移動 100px *//* transform: translate(0, 100px) *//* 水平移動 100px *//* transform: translateX(100px); *//* 垂直移動 100px */transform: translateY(100px) }
    十五、通過 定位(子絕父相) + transform:translate(-50%,-50%)讓一個盒子水平垂直居中

    代碼演示:

    <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>div {position: relative;width: 500px;height: 500px;background-color: pink;/* 1. 我們tranlate里面的參數是可以用 % *//* 2. 如果里面的參數是 % 移動的距離是 盒子自身的寬度或者高度來對比的 *//* 這里的 50% 就是 50px 因為盒子的寬度是 100px *//* transform: translateX(50%); */}p {position: absolute;top: 50%;left: 50%;width: 200px;height: 200px;background-color: purple;/* margin-top: -100px;margin-left: -100px; *//* translate(-50%, -50%) 盒子往上走自己高度的一半 */transform: translate(-50%, -50%);}span {/* translate 對于行內元素是無效的 */transform: translate(300px, 300px);}</style> </head><body><div><p></p></div><span>123</span> </body></html>
    十六、2D 轉換 rotate
  • rotate 旋轉

    • 2D 旋轉指的是讓元素在二維平面內順時針或者逆時針旋轉
  • rotate 語法

  • /* 單位是:deg */ transform: rotate(度數)
  • 重點知識點
    • rotate 里面跟度數,單位是 deg
    • 角度為正時,順時針,角度為負時,逆時針
    • 默認旋轉的中心點是元素的中心點
  • 代碼演示
  • img:hover {transform: rotate(360deg) }

    旋轉中心點 transform-origin:


    代碼演示:

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>旋轉中心點案例</title><style type="text/css">div {width: 200px;height: 200px;background-color: pink;margin: 100px auto;transition: all 0.4s;/* 1.設置旋轉中心點 transform-origin后面可以跟方位名詞 *//* transform-origin: left bottom; *//* 2.默認的旋轉中心點是 50% 50% 等價于 center center *//* 3.可以是px像素 */transform-origin: 50px 50px;}div:hover {transform: rotate(360deg);}</style></head><body><div></div></body> </html>
    十七、CSS 3盒子模型

    CSS3中可以通過 box-sizing來指定盒模型,
    有2個值:
    即可指定為content-box、border-box,這樣我們計算盒子大小的方式就發生了改變。

    可以分成兩種情況:
    1.box-sizing:content-box盒子大小為 width+padding+border(以前默認的)
    2.box-sizing:border-box 盒子大小為width如果盒子模型我們改為了box-sizing border-box,那么padding和border就不會撐大盒子了(前提是padding和border不會超過width的寬度)

    十八、CSS 3濾鏡filter


    十九、CSS 3 calc函數:


    二十、CSS 3 過渡(重點):



    1、基本使用方法:

    transition: 需要變化的屬性 花費的時間 運動曲線 何時開始;

    2、如果需要同時給多個屬性加過渡效果,可以使用逗號進行分割

    3、如果想要所有的屬性都發生變化,有過渡的效果,直接把屬性寫成 all 即可

    總結

    以上是生活随笔為你收集整理的十三、CSS 3新特性详解(一)——属性、结构伪类、伪元素选择器,nth-child与nth-of-type区别,2D rotate,calc函数、滤镜filter、过渡transition的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。