CSS中類比父元素選取器

來源:互聯網
上載者:User

標籤:

很多情況下,我們需要找到父元素,但可惜的是css中並沒有這樣的一個選取器。

至於原因可以看張鑫旭的如何在CSS中實現父選取器效果這篇文章。

 

簡單來說這個實現並不是真正的父元素選取器,只是利用其它思路來實現相同效果罷了。

 

HTML:

<div id="box">
  <p>pppppppp</p>
  <span></span>
</div>

CSS:

div,p{
  margin:0;
  padding:0;
}
#box{
  width:300px;
  height:300px;
  position:relative;
}
#box>span{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  box-shadow:0px 0px 0px 1px #ccc;
}
#box>p:hover + span{
  box-shadow:0px 0px 0px 1px red;
}
p{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:1;
}

效果:

hover的時候

下面說一下注意點

這個span必須放在p標籤後一個位置,因為我們用的是+下一個同級選取器。還有就是p標籤必須加z-index,不然span會把p標籤蓋住,效果就沒了。

position:absolute;
left:50%;
top:50%;
transform:translate(-50%,-50%);

這段代碼會把p標籤垂直置中。

 

其實這個原理很簡單,就是原本給父元素添加的樣式給一個子項目添加,讓子項目冒充父元素,定位就好了。

CSS中類比父元素選取器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.