我有這個帶有一些按鈕的 div:

我想讓它具有回應性,因此在特定螢屏尺寸下,它必須如下所示:

但在某些時候,它看起來像這樣:

或者像這樣:

我不想要那個。
大多數時候我希望它看起來像第一張圖,而當視口的寬度小于500px時,它應該像第二張圖。
這是代碼:
#settings-content {
width: 100%;
min-height: 11rem;
border: 1px solid black;
border-radius: 25px;
margin-left: 1.5rem;
text-align: center;
box-sizing: content-box;
}
.settings-title {
display: inline-block;
border: 1px solid black;
border-radius: 1.5rem;
height: 2.5rem;
line-height: 2.1rem;
width: 95%;
text-align: center;
margin: 1rem 0 2rem 0;
}
.settings-buttons, .languages-content {
border: 1px solid black;
width: 95%;
text-align: center;
margin: 0 auto;
border-radius: 1.5rem;
margin-bottom: 1rem;
}
.settings-list {
display: flex;
flex-wrap: wrap;
margin: 1rem 0;
padding-left: 0;
column-gap: 20px;
justify-content: center;
}
.settings-item {
border: 1px solid #000;
flex: 1;
max-width: 150px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.settings-item::before {
content: "";
display: inline-block;
padding-top: 100%;
}
.languages-list {
height: 9rem;
display: flex;
justify-content: center;
align-content: center;
flex-wrap: wrap;
margin: 0;
}
.languages-item {
margin: 0 1rem;
}
@media (max-width: 500px)
{
.settings-item {
max-width: 100px;
flex: 1 50%;
}
}
<div id="settings-content">
<div class="settings-buttons">
<ul class="settings-list">
<li class="settings-item">Music</li>
<li class="settings-item">Sound</li>
<li class="settings-item">Info</li>
<li class="settings-item">Tutorials</li>
</ul>
</div>
</div>
我怎樣才能達到我想要的結果?我是 Flexbox 的初學者,我想深入解釋正在發生的事情,請。:)
為什么我的實際代碼不起作用?它有效,但對于某些解析度,我得到了第 3 和第 4 種布局,但我不想要那樣。
謝謝 :)
uj5u.com熱心網友回復:
洗掉flex: 1;,以百分比設定專案寬度,然后在小螢屏上將其加倍。使用以下選擇器進行包裝:
.settings-item:nth-child(2n) {
flex-basis: 100%;
}
修改后的代碼:
#settings-content {
width: 100%;
min-height: 11rem;
border: 1px solid black;
border-radius: 25px;
margin-left: 1.5rem;
text-align: center;
box-sizing: content-box;
}
.settings-title {
display: inline-block;
border: 1px solid black;
border-radius: 1.5rem;
height: 2.5rem;
line-height: 2.1rem;
width: 95%;
text-align: center;
margin: 1rem 0 2rem 0;
}
.settings-buttons, .languages-content {
border: 1px solid black;
width: 95%;
text-align: center;
margin: 0 auto;
border-radius: 1.5rem;
margin-bottom: 1rem;
}
.settings-list {
display: flex;
flex-wrap: wrap;
margin: 1rem 0;
padding-left: 0;
column-gap: 20px;
justify-content: center;
}
.settings-item {
border: 1px solid #000;
width: 20%;
max-width: 150px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.settings-item::before {
content: "";
display: inline-block;
padding-top: 100%;
}
.languages-list {
height: 9rem;
display: flex;
justify-content: center;
align-content: center;
flex-wrap: wrap;
margin: 0;
}
.languages-item {
margin: 0 1rem;
}
@media (max-width: 500px)
{
.settings-item {
width: 40%;
}
.settings-item:nth-child(2n) {
flex-basis: 100%;
}
}
<div id="settings-content">
<div class="settings-buttons">
<ul class="settings-list">
<li class="settings-item">Music</li>
<li class="settings-item">Sound</li>
<li class="settings-item">Info</li>
<li class="settings-item">Tutorials</li>
</ul>
</div>
</div>
uj5u.com熱心網友回復:
max-width: 100px;從 500 像素媒體中的設定項中洗掉
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/375047.html
