我想創建一個任意大小的div,然後在div上顯示一些東西。在CSS中定位和調整疊加層的最佳方式是什麼?如何在css中創建疊加層?
回答
可以使用position:absolute
到覆蓋定位您的div中,然後伸展它像這樣四面八方:
CSS更新*
.overlay {
position:absolute;
top:0;
left:0;
right:0;
bottom:0;
background-color:rgba(0, 0, 0, 0.85);
background: url(data:;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuNUmK/OAAAAATSURBVBhXY2RgYNgHxGAAYuwDAA78AjwwRoQYAAAAAElFTkSuQmCC) repeat scroll transparent\9; /* ie fallback png background image */
z-index:9999;
color:white;
}
你只需要確保你的父div有position:relative
屬性添加到它和較低的z-index
。
做了一個適用於以下評論者的適用於所有瀏覽器(包括IE7 +)的演示。
刪除從CSS的opacity
屬性,而是使用的RGBA顏色,得到背景,只有背景,不透明度水平。這樣,覆蓋圖攜帶的內容不會受到影響。由於IE不支持rGBA,因此我使用了IE hack,而不是使用base64編碼的PNG背景圖像來填充覆蓋div,這樣我們就可以避免IE不透明問題,並將不透明度應用於子元素。
沒有看到你目前的HTML和CSS的例子快速的答案是使用的z-index
CSS:
#div1 {
position: relative;
z-index: 1;
}
#div2 {
position: relative;
z-index: 2;
}
哪裏DIV2是覆蓋
你也可以使用position:absolute;取決於你父母的div如何定位。 – 2012-03-15 16:35:42
我會使用CSS屬性建議做這個。您可以使用position:absolute來將元素放置在另一個元素之上。
例如:
<div id="container">
<div id="on-top">Top!</div>
<div id="on-bottom">Bottom!</div>
</div>
和CSS
#container {position:relative;}
#on-top {position:absolute; z-index:5;}
#on-bottom {position:absolute; z-index:4;}
我想看看這個諮詢: http://www.w3schools.com/cssref/pr_class_position.asp
最後這裏是一個的jsfiddle給你看我的例子
CSS:
#box{
border:1px solid black;
position:relative;
}
#overlay{
position:absolute;
top:0px;
left:0px;
bottom:0px;
right:0px;
background-color:rgba(255,255,0,0.5);
}
,我遲到了,但如果你想只使用CSS,這樣對任意元素沒有與定位,疊加的div等亂搞。,你可以使用內嵌框陰影:
box-shadow: inset 0px 0px 0 2000px rgba(0,0,0,0.5);
這將適用於任何小於4000像素長或寬的元素。
如果你不介意用z-index搞亂,但要避免增加額外的div爲疊加,你可以用下面的辦法
/* make sure ::before is positioned relative to .foo */
.foo { position: relative; }
/* overlay */
.foo::before {
content: '';
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.5);
z-index: 0;
}
/* make sure all elements inside .foo placed above overlay element */
.foo > * { z-index: 1; }
這裏是一個覆蓋使用僞元素(例如:無需添加更多的標記來做到這一點)
.box {
background: 0 0 url(http://ianfarb.com/wp-content/uploads/2013/10/nicholas-hodag.jpg);
width: 300px;
height: 200px;
}
.box:after {
content: "";
display: block;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.4);
}
<div class="box"></div>
我只是在codepen上玩弄類似的問題,這就是我使用簡單的css標記創建覆蓋圖的過程。我創建了一個應用於類的.box的div元素。在這個div裏面,我創建了兩個div,一個應用了.inner類,另一個應用了.notext類。 .box div中的這兩個類最初都設置爲display:none,但當.box懸停時,這些類都可見。
.box{
height:450px;
width:450px;
border:1px solid black;
margin-top:50px;
display:inline-block;
margin-left:50px;
transition: width 2s, height 2s;
position:relative;
text-align: center;
background:url('https://upload.wikimedia.org/wikipedia/commons/c/cd/Panda_Cub_from_Wolong,_Sichuan,_China.JPG');
background-size:cover;
background-position:center;
}
.box:hover{
width:490px;
height:490px;
}
.inner{
border:1px solid red;
position:relative;
width:100%;
height:100%;
top:0px;
left:0px;
display:none;
color:white;
font-size:xx-large;
z-index:10;
}
.box:hover > .inner{
display:inline-block;
}
.notext{
height:30px;
width:30px;
border:1px solid blue;
position:absolute;
top:0px;
left:0px;
width:100%;
height:100%;
display:none;
}
.box:hover > .notext{
background-color:black;
opacity:0.5;
display:inline-block;
}
<div class="box">
<div class="inner">
<p>Panda!</p>
</div>
<div class="notext"></div>
</div>
希望這有助於! :)歡迎任何建議。
- 1. 如何爲按鈕創建疊加層
- 2. 如何在Flex的高級網格中創建疊加層
- 3. 如何在CSS中創建圖案疊加
- 4. 如何爲ItemsControl中的每個項目創建疊加層?
- 5. 如何在HTML5視頻上創建疊加層?
- 6. 使用CSS和z-index創建頁面疊加層,然後將一個元素放置在疊加層頂部
- 7. 創建縮略圖疊加在CSS
- 8. CSS:對齊疊加層
- 9. 在UIButton圖像上創建疊加層,但僅在圖像本身上創建疊加層
- 10. 如何在CSS中的圖像上放置灰色疊加層
- 11. CSS層疊卡
- 12. CSS層疊不
- 13. 如何用Simple Modal創建多個疊加層?
- 14. CSS幫助創建一個框,我有層疊在一起
- 15. 如何在openlayers中添加地圖圖層疊加層?
- 16. 捕獲屏幕大小並在HTML/JavaScript中創建疊加層
- 17. 在Android TV中爲片段創建疊加層?
- 18. 如何在幻燈片中的照片上創建標題疊加層?
- 19. 如何在Google Maps API v3中創建不能平移的文字疊加層?
- 20. 瞭解層疊在CSS
- 21. CSS層疊優先
- 22. 如何創建一個疊加層來自動加載頁面加載?
- 23. 如何在CSS中疊加圖像
- 24. 如何創建圖像標題和圖像疊加與CSS?
- 25. 如何在css中創建?
- 26. 如何僅在特定基礎層中顯示疊加層?
- 27. 來自角落的CSS疊加層
- 28. 使用css分層疊加元素
- 29. 創建不同的CSS層
- 30. 爲OSX中的不同應用程序創建疊加層
我不知道職位:相對適用於所有的孩子:O。非常感謝 – 2012-03-15 16:42:37
您能否讓它更加跨瀏覽器兼容? – Greg 2012-03-15 16:49:44
@Greg由於IE的不透明度支持非常稀疏,並且滲入div的子節點,所以無法在div上獲得乾淨的不透明度,但是可以通過使用帶有不透明度的png圖像來解決該問題,這裏是一個適用於所有瀏覽器(包括IE7 +)的演示程序:http://jsfiddle.net/andresilich/g5jEr/ – 2012-03-15 18:25:30