1. 程式人生 > 實用技巧 >css偽元素應用場景

css偽元素應用場景

想起年初遇到的一個css題,怎樣實現下圖所示的圖形(這是我新寫出來的效果圖,大致是這樣子的):

思路:用兩個div,實現左下和右上兩個部分,可以,但遇到的問題很多,比如如何畫三角形、如何組合兩個div的位置,如何將文字顯示在每個div裡面等,而且這個效果其實更像是一個整體,用兩個div來構建總顯得不太合理和優雅。因此,我們考慮用一個div結合偽元素的方法實現。

首先我們定義文件結構如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta 
name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id="corner"> <span>aaa</span> </div> </body> </html>

重點是css,我們定義div的基本內容,長寬、背景、水平居中等屬性(relative方便偽元素定位):

#corner {
  width: 100px;
  height: 100px;
  background: #fff;
  margin: 0 auto;
  position: relative;
}

左下角我們用偽元素:before畫一個紅色的三角形,如何畫三角形、圓等常見圖案可以自行百度:

#corner::before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border-bottom: 100px solid red;
  border-right: 100px solid transparent;
}

接著用:after填充bbb這部分內容,並把它放右上角,最後調整下span的格式就完成任務了:

#corner::after {
  content: "bbb";
  position: absolute;
  right: 0;
}
span{
    position: absolute;
    bottom: 0;
}

當然,這只是我的一個思路,還有很多可以實現此狀態的方法,歡迎大佬拍磚提供思路。