css偽元素

css偽元素.png
<style>
  .square{
    width:200px;
    height:100px;
    position:relative;
    border:1px #ccc solid;
    margin:30px;
  }
/* .square:before{
    content:"";
    width:0px;
    height:0px;
    display:block;
    position:absolute;
    top:-29%;
    left:5%;
    border:15px solid #ccc;
    border-color:transparent transparent #fff transparent;
    z-index:2;
 } */
.square:after{
    content:"";
    width:0px;
    height:0px;
    display:block;
    position:absolute;
    top:-30%;
    left:5%;
    border:15px solid #FFF;
    border-color:transparent transparent #ccc transparent;
    z-index:1;
} 
</style>
        
<div class='square'></div>

```
  <style>
.square{
width:200px;
height:100px;
position:relative;
border:1px #ccc solid;
margin:30px;
}
/* .square:before{
content:"";
width:0px;
height:0px;
display:block;
position:absolute;
top:-29%;
left:5%;
border:15px solid #ccc;
border-color:transparent transparent #fff transparent;
z-index:2;
} */
.square:after{
content:"";
width:0px;
height:0px;
display:block;
position:absolute;
top:0;
right:0;
border:15px solid #FFF;
border-color:red red transparent transparent;
z-index:1;
}
</style>

<div class='square'></div>

<style>
.square{
width:200px;
height:100px;
position:relative;
border:1px #ccc solid;
margin:30px;
}
.square:before{
content:"";
width:0px;
height:0px;
display:block;
position:absolute;
top:-29%;
left:5%;
border:15px solid #ccc;
border-color:transparent transparent #fff transparent;
z-index:2;
}
.square:after{
content:"";
width:0px;
height:0px;
display:block;
position:absolute;
top:-30%;
left:5%;
border:15px solid #FFF;
border-color:transparent transparent #ccc transparent;
z-index:1;
}
</style>

<div class='square'></div>


  給定的html代碼是: <div class='square'></div>

  平常實(shí)現(xiàn)我們常是通過添加小的icon來實(shí)現(xiàn),不僅需要添加圖片資源岂丘,還需要改動(dòng)html結(jié)構(gòu)已亥。

  CSS偽元素

  css中偽元素有四個(gè),分別是:first-line,:first-letter,:before,:after相寇。其中前兩個(gè)分別選擇的是目標(biāo)元素內(nèi)第一行文本和第一個(gè)字母,可以為其添加多余樣式着撩。

  而最常用的就是:before和:after夜矗,這兩個(gè)偽元素與前兩個(gè)的用法不同点骑,而用處也更大酣难。

  :before,:after分別用于向當(dāng)前元素前和后添加指定的content內(nèi)容,具體事例用法如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>CSS輸出各種圖形</title>
<style type="text/css">
p:before{
content:"開始";
color:#F00;
font-size:12px;
}
p:after{
content:"結(jié)束";
color:#003;
font-size:30px;
border:1px solid #000;
width:100px;
}
</style>
</head>

<body>

<p>偽元素 測(cè)試</p>

</body>
</html>

復(fù)制代碼

上面代碼的運(yùn)行結(jié)果如圖:  

    可以認(rèn)為:before和:after兩個(gè)偽元素是添加到當(dāng)前p標(biāo)簽前后的兩個(gè)元素黑滴,但是應(yīng)該也會(huì)發(fā)現(xiàn)在p:after中寫的width:100px;并沒有奏效憨募,這就說明了偽元素的顯示是inline的,而不是block袁辈。

    至于偽元素有幾個(gè)需要注意的地方:

    1.偽元素在元素內(nèi)部的顯示為inline菜谣,因此想要用偽元素實(shí)現(xiàn)更多效果,比如上面的題目晚缩,就必須把偽元素當(dāng)做block元素來用尾膊。

    2.偽元素列表屬性中content必不可少,即使內(nèi)容為空橡羞,content也不能為空眯停,否則會(huì)不顯示济舆。

    3.偽元素content除了可以設(shè)置為文字之外卿泽,還可以設(shè)置為圖片,例如p:before{content:url(icon.gif);}

    4.偽元素目前已經(jīng)得到IE8及以上瀏覽器滋觉,可以放心使用签夭。

 

    用CSS做出來一個(gè)三角形或者別的形狀

    掌握了偽元素之后,就可以實(shí)現(xiàn)上面的題目了椎侠。很明顯第租,是通過偽元素做出了一個(gè)三角形。怎么做呢我纪?

    用CSS代碼實(shí)現(xiàn)三角形很簡(jiǎn)單慎宾,嘗試一下就可以寫出來:,html代碼為<div class="triangle"></div>, css代碼如下

    .trangle{width:0;height:0;border:40px solid; border-color:transparent transparent transparent #F00;}

    別的形狀也是大同小異浅悉,通過設(shè)置不同的border-radius和border-width來實(shí)現(xiàn)趟据,但是兼容性有問題,IE9及以上才會(huì)正常(自然是border-radius的問題)术健。

    

    但是可以看出來元素已經(jīng)是用border勾勒出來的了汹碱,但是題目中的三角形是帶有黑色邊框的,很明顯不能通過一個(gè)偽元素來搞定荞估,那就兩個(gè)一起咳促。

    通過設(shè)定偽元素的position:absolute和z-index屬性稚新,構(gòu)成偽元素的疊加,底層是黑色跪腹,上層是白色即可褂删。

    原題目的CSS具體實(shí)現(xiàn)代碼如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>CSS輸出各種圖形</title>
<style type="text/css">

.square{width:100px;height:100px;background-color:#FFF;position:relative;border:2px #000000 solid;}
.square:before{
content:"";
width:0px;
height:0px;
display:block;
position:absolute;
z-index:2;
top:25%;
right:-28px;
border:15px solid #FFF;
border-color:transparent transparent transparent #FFF;
}
.square:after{content:"";
width:0px;
height:0px;
display:block;
position:absolute;
z-index:1;
top:25%;
right:-30px;
border:15px solid #FFF;
border-color:transparent transparent transparent #000;
}
</style>
</head>

<body>

<div class='square'></div>
</body>
</html>

       
  給定的html代碼是: <div class='square'></div>

  平常實(shí)現(xiàn)我們常是通過添加小的icon來實(shí)現(xiàn),不僅需要添加圖片資源冲茸,還需要改動(dòng)html結(jié)構(gòu)笤妙。

  CSS偽元素

  css中偽元素有四個(gè),分別是:first-line,:first-letter,:before,:after噪裕。其中前兩個(gè)分別選擇的是目標(biāo)元素內(nèi)第一行文本和第一個(gè)字母蹲盘,可以為其添加多余樣式。

  而最常用的就是:before和:after膳音,這兩個(gè)偽元素與前兩個(gè)的用法不同召衔,而用處也更大。

  :before,:after分別用于向當(dāng)前元素前和后添加指定的content內(nèi)容祭陷,具體事例用法如下:


<pre>

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>CSS輸出各種圖形</title>

<style type="text/css">

p:before {
content: "開始";
color: #F00;
font-size: 12px;
}

p:after {
content: "結(jié)束";
color: #003;
font-size: 30px;
border: 1px solid #000;
width: 100px;
}

</style>
</head>
<body>
<p>偽元素 測(cè)試</p>
</body>
</html>
</pre>




    可以認(rèn)為:before和:after兩個(gè)偽元素是添加到當(dāng)前p標(biāo)簽前后的兩個(gè)元素苍凛,但是應(yīng)該也會(huì)發(fā)現(xiàn)在p:after中寫的width:100px;并沒有奏效,這就說明了偽元素的顯示是inline的兵志,而不是block醇蝴。

    至于偽元素有幾個(gè)需要注意的地方:

    1.偽元素在元素內(nèi)部的顯示為inline,因此想要用偽元素實(shí)現(xiàn)更多效果想罕,比如上面的題目悠栓,就必須把偽元素當(dāng)做block元素來用。

    2.偽元素列表屬性中content必不可少按价,即使內(nèi)容為空惭适,content也不能為空,否則會(huì)不顯示楼镐。

    3.偽元素content除了可以設(shè)置為文字之外癞志,還可以設(shè)置為圖片,例如p:before{content:url(icon.gif);}

    4.偽元素目前已經(jīng)得到IE8及以上瀏覽器框产,可以放心使用凄杯。

    用CSS做出來一個(gè)三角形或者別的形狀

    掌握了偽元素之后,就可以實(shí)現(xiàn)上面的題目了秉宿。很明顯戒突,是通過偽元素做出了一個(gè)三角形。怎么做呢蘸鲸?

    用CSS代碼實(shí)現(xiàn)三角形很簡(jiǎn)單妖谴,嘗試一下就可以寫出來:[圖片上傳中...(image-aa3c1a-1511271151620-4)]

,html代碼為<div class="triangle"></div>, css代碼如下

    .trangle{width:0;height:0;border:40px solid; border-color:transparent transparent transparent #F00;}

    別的形狀也是大同小異,通過設(shè)置不同的border-radius和border-width來實(shí)現(xiàn)膝舅,但是兼容性有問題嗡载,IE9及以上才會(huì)正常(自然是border-radius的問題)。

    但是可以看出來元素已經(jīng)是用border勾勒出來的了仍稀,但是題目中的三角形是帶有黑色邊框的洼滚,很明顯不能通過一個(gè)偽元素來搞定,那就兩個(gè)一起技潘。

    通過設(shè)定偽元素的position:absolute和z-index屬性遥巴,構(gòu)成偽元素的疊加,底層是黑色享幽,上層是白色即可辆憔。

    原題目的CSS具體實(shí)現(xiàn)代碼如下:

<pre>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>CSS輸出各種圖形</title>
<style type="text/css">
.square {
width: 100px;
height: 100px;
background-color: #FFF;
position: relative;
border: 2px #000000 solid;
}
.square:beforem {
content: "";
width: 0px;
height: 0px;
display: block;
position: absolute;
z-index: 2;
top: 25%;
right: -28px;
border: 15px solid #FFF;
border-color: transparent transparent transparent #FFF;
}
.square:after {
content: "";
width: 0px;
height: 0px;
display: block;
position: absolute;
z-index: 1;
top: 25%;
right: -30px;
border: 15px solid #FFF;
border-color: transparent transparent transparent #000;
}
</style>
</head>
<body>
<div class ='square'>
</div>
</body>
</html>
</pre>


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末颖低,一起剝皮案震驚了整個(gè)濱河市哩照,隨后出現(xiàn)的幾起案子染服,更是在濱河造成了極大的恐慌,老刑警劉巖奔坟,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件携栋,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡咳秉,警方通過查閱死者的電腦和手機(jī)婉支,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來澜建,“玉大人向挖,你說我怎么就攤上這事■荩” “怎么了户誓?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵饼灿,是天一觀的道長(zhǎng)幕侠。 經(jīng)常有香客問我,道長(zhǎng)碍彭,這世上最難降的妖魔是什么晤硕? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮庇忌,結(jié)果婚禮上舞箍,老公的妹妹穿的比我還像新娘。我一直安慰自己皆疹,他們只是感情好疏橄,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般捎迫。 火紅的嫁衣襯著肌膚如雪晃酒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天窄绒,我揣著相機(jī)與錄音贝次,去河邊找鬼。 笑死彰导,一個(gè)胖子當(dāng)著我的面吹牛蛔翅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播位谋,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼山析,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了掏父?” 一聲冷哼從身側(cè)響起盖腿,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎损同,沒想到半個(gè)月后翩腐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡膏燃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年茂卦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片组哩。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡等龙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出伶贰,到底是詐尸還是另有隱情蛛砰,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布黍衙,位于F島的核電站泥畅,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏琅翻。R本人自食惡果不足惜位仁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望方椎。 院中可真熱鬧聂抢,春花似錦、人聲如沸棠众。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至空盼,卻和暖如春疮薇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背我注。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工按咒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人但骨。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓励七,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親奔缠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子掠抬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容