我有這個 HTML 頁面,我試圖在兩行上放置 8 個完美的圓圈。(每個 4 個)
我使用 flexbox 實作了這一點,但是我的圈子會被打破。我希望這會發生,因為我沒有固定的寬度和高度 - 但問題是,圓圈的尺寸無法固定,因為它們是由 flex-basis 設定的。
這是代碼:
.content-achievements {
width: 100%;
height: 30rem;
position: relative;
border: 1px solid black;
border-radius: 25px;
margin-left: 1.5rem;
text-align: center;
}
.achievements-title {
border: 1px solid black;
border-radius: 1.5rem;
width: 95%;
margin: 1.5rem auto;
height: 2.5rem;
line-height: 2.5rem;
}
.achievements-list {
border: 1px solid black;
width: 95%;
text-align: center;
margin: 0 auto;
border-radius: 1.5rem;
margin-bottom: 1rem;
}
.achievements-items {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: center;
gap: 20px;
margin: 1rem 0;
}
.achievements-item {
display: inline-block;
flex-basis: 20%;
border-radius: 50%;
border: 1px solid #000;
line-height: 2rem;
}
<div class="content-achievements">
<div class="achievements-title">
Game Achievements
</div>
<div class="achievements-list">
<ul class="achievements-items">
<li class="achievements-item">achiev1</li>
<li class="achievements-item">achiev2</li>
<li class="achievements-item">achiev3</li>
<li class="achievements-item">achiev4</li>
<li class="achievements-item">achiev5</li>
<li class="achievements-item">achiev6</li>
<li class="achievements-item">achiev7</li>
<li class="achievements-item">achiev8</li>
</ul>
</div>
</div>
如何在保持此布局的同時修復我的圈子?
謝謝。
uj5u.com熱心網友回復:
可以使用圓形專案的CSS 屬性縱橫比來完成:
.achievements-items {
aspect-ratio: 1;
}
并相應地調整主容器的高度以適應其新的動態內容高度:
.content-achievements {
...
height: auto;
...
}
uj5u.com熱心網友回復:
為所有圓元素的高度和寬度設定一個相同的靜態大小:
.achievements-items {
width: 40px;
height: 40px;
}
uj5u.com熱心網友回復:
嘗試在其中使用 flexbox 使用 grid 來更好地指定它使用的行和列:
.achievements-list{
display:flex;
justify-content:center;
justify-items:center;
border:1px solid black;
width:95%;
text-align:center;
margin:0 auto;
border-radius:1.5rem;
margin-bottom:1rem;
}
.achievements-items{
display: grid;
grid-template-columns: auto auto auto auto;
gap: 50px;
margin: 1rem 0;
}
.achievements-item{
list-style-type: none;
width: 60px;
height: 60px;
border-radius: 50%;
border: 1px solid #000;
line-height: 2rem;
}
uj5u.com熱心網友回復:
以前沒有aspect-ratio,甚至現在,由于它還沒有得到廣泛支持,一個常見的方法是制作三個元素而不是一個元素并使用一個padding-bottom技巧。你看,當你設定padding百分比時,它是相對于包含塊的寬度計算的。垂直填充(頂部/底部)和水平填充(右/左)都是如此。這意味著如果你設定padding-bottom: 100%這個“100%”將等于父容器的寬度,而不是高度。所以我們可以這樣做:
- 外部元素——定義
width - 中間元素——定義
heightviapadding-bottom,也有position: relative - 內部元素——保存內容,也有
position: absolute
下面我span為每個標簽添加了兩個標簽li并應用了這個技巧。
* {
margin: 0;
box-sizing: border-box;
}
.content-achievements {
width: 100%;
height: 30rem;
position: relative;
border: 1px solid black;
border-radius: 25px;
text-align: center;
}
.achievements-title {
border: 1px solid black;
border-radius: 1.5rem;
width: 95%;
margin: 1.5rem auto;
height: 2.5rem;
line-height: 2.5rem;
}
.achievements-list {
border: 1px solid black;
width: 95%;
text-align: center;
margin: 0 auto;
border-radius: 1.5rem;
margin-bottom: 1rem;
}
.achievements-items {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: center;
gap: 20px;
margin: 1rem 0;
}
.achievements-item {
display: inline-block;
flex-basis: 20%;
line-height: 2rem;
position: relative;
}
.achievements-item>span {
position: relative;
display: block;
padding-bottom: 100%;
border-radius: 50%;
border: 1px solid #000;
}
.achievements-item>span>span {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
<div class="content-achievements">
<div class="achievements-title">
Game Achievements
</div>
<div class="achievements-list">
<ul class="achievements-items">
<li class="achievements-item"><span><span>achiev1</span></span></li>
<li class="achievements-item"><span><span>achiev2</span></span></li>
<li class="achievements-item"><span><span>achiev3</span></span></li>
<li class="achievements-item"><span><span>achiev4</span></span></li>
<li class="achievements-item"><span><span>achiev5</span></span></li>
<li class="achievements-item"><span><span>achiev6</span></span></li>
<li class="achievements-item"><span><span>achiev7</span></span></li>
<li class="achievements-item"><span><span>achiev8</span></span></li>
</ul>
</div>
</div>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/347503.html
