回答
這裏有一個解決方案。具有製作第二格的優勢全部容器與第一格之間的剩餘空間。簡而言之,它是敏感的。
第一個div必須有一個小於容器的寬度(或者第二個div不會出現,具有負寬度)。第一個div的寬度可以是%
,也可以是px
(示例3)中的固定寬度。
如果您想要第二個div直到容器的邊緣,請從calc:calc(100vw - 100%)/2)
中刪除-10px
。我只是把它放在那裏,所以你可以看到我們沒有隱藏過多的東西,我們正在控制寬度。
body {margin: 0;}
.container {
background-color: #e6e6e6;
position: relative;
overflow-x: hidden;
}
.container > * {
color: white;
padding: 20px;
margin: 0 auto;
}
.first-div {
background-color: #696;
position: relative;
box-sizing: border-box;
max-width: 60%; /* set default/fallback first div width here - fixed or % */
margin-bottom: 20px;
}
.second-div {
left: 100%;
top: 0;
margin: 0 0 -20px;
padding: 20px;
background-color: #933;
width: calc(((100vw - 100%)/2) - 10px);
position: absolute;
box-sizing: border-box;
}
<div class="container">
<div class="first-div">
<div class="second-div">Blog truffaut letterpress, austin butcher vinyl aesthetic. </div>
<h1>Example 1</h1>
This div is 60% of container (default, set in CSS). Kale chips banjo hella swag jean shorts. Fixie meh venmo, gastropub disrupt migas 3 wolf moon PBR&B.
</div>
</div>
<hr>
<div class="container">
<div class="first-div" style="max-width: 30%;">
<div class="second-div">Freegan you. Skateboard thundercats art party bushwick fashion axe. Tattooed 90's cornhole, flexitarian scenester mixtape pinterest beard fixie pabst.</div>
<h1>Example 2</h1>
This div is 30% of container (override by inline styling). Kale chips banjo hella swag jean shorts. Fixie meh venmo, gastropub disrupt migas 3 wolf moon PBR&B. Blog truffaut letterpress, austin butcher vinyl aesthetic.
</div>
</div>
<hr>
<div class="container">
<div class="first-div" style="max-width: 400px">
<div class="second-div">Freegan you. </div>
<h1>Example 3</h1>
This div has a fixed width of 400px (inline styling). Kale chips. This div has fixed width, But the second one resizes responsively.
</div>
</div>
<hr>
更新(二)答案:
.div1 {
position: relative;
outline: 3px solid red;
width: 230px;
height: 200px;
margin: 0 auto;
}
.div2 {
position: absolute;
top: 0;
left: 105%;
outline: 3px solid blue;
width: 200px;
height: 200px;
margin: 0 auto;
}
<div class="div1">
div1
<div class="div2">div2</div>
</div>
我更新了剪切以反映您更新的問題(您:div的寬度取決於它們包含的文本,並且不是靜態的。 )例如:right:-210px ... – Milkmannetje
這需要div2爲固定寬度。如果它的寬度是由它內部的文本決定的呢? – adamSrgnt
不再,再次檢查我的代碼:)例如:http://codepen.io/bbredewold/pen/GopZpK – Milkmannetje
這應該是正是你需要的。顯然你可以根據需要調整事物的寬度和高度。關鍵是將容器內的div設置爲顯示:inline-block;
我不知道你對html和css有多熟悉,但在這裏我使用了一個外部樣式表。如果您願意,可以使用<style>
標籤。
如果您刪除.container內的div的寬度,它們的大小將由其內容決定。
的Html
<!DOCtype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="../css/sot.css">
</head>
<body>
<div class="container">
<div class="centered-div"></div>
<div class="other-div"></div>
</div>
</body>
</html>
CSS
.container {
border: 3px solid blue;
width: 100%;
height: 500px;
text-align: center;
}
.container div {
display: inline-block;
width: 250px;
height: 485px;
margin-top: 3px;
}
.centered-div {
position: relative;
border: 3px solid green;
margin: auto;
}
.other-div {
position: absolute;
border: 3px solid red;
}
居中div不居中;) – Milkmannetje
哦,我看到你不想讓他們都居中? – James
這裏錯編輯它,所以它的工作原理是所有你需要做的是定位中心一個相對和另一個div絕對 – James
- 1. 定位上一個兄弟元素CSS
- 2. CSS定位絕對需要兄弟元素的相對位置
- 3. CSS:如何在正確對齊其兄弟的同時將元素相對於其父元素居中?
- 4. Xpath - 需要一個xpath來定位兄弟表中的元素
- 5. 定位兄弟元素一個在另一個
- 6. 如何基於它的上一個相鄰兄弟的CSS的元素的CSS?
- 7. 如何定位一個元素相對於一個固定元素?
- 8. 相對於另一個元素居中元素
- 9. Array參考另一個兄弟元素
- 10. 如何使用jquery將相對定位的元素居中?
- 11. 如何將一個元素相對於它的父元素居中?
- 12. 如何獲得Angular2中的下一個元素/兄弟姐妹
- 13. Angular 2如何定位一個元素相對於另一個元素
- 14. 鎖定元素相對於另一個元素的位置
- 15. 垂直對齊div相對於兄弟
- 16. 如何查找元素的前N個兄弟元素
- 17. 定位元件相對於從另一RelativeLayout的一個元素
- 18. 如何定位一個元素相對於屏幕(視口)?
- 19. 定位元素相對於另一個元素
- 20. 將元素相對於另一個元素定位
- 21. 相對於另一個元素定位元素
- 22. 定位元素相對於另一個元素
- 23. 我該如何製作一個有兄弟姐妹定位絕對位置的元素?
- 24. 我如何定位我的jQuery元素相對於另一個元素
- 25. 基於其前一個兄弟的孩子選擇元素
- 26. 你是如何得到一個職位的:絕對的;元素高於某個位置:相對;一個
- 27. 如何顯示一個元素懸停的兄弟姐妹?
- 28. 獲取元素的前一個兄弟元素?
- 29. z-index兄弟絕對元素
- 30. jquery wrap兄弟元素
這是可能的。第二個div是否需要佔用第一個div和集裝箱之間的所有空間?如果是這樣,第一個div和容器之間的最大寬度比率是多少? –