W3.CSS - 响应式布局 - w3-cell-row
W3.CSS - Responsive Layout - w3-cell-row
刚开始使用W3.css,还没有找到一个小问题的解决方案,这个问题似乎只出现在移动版本上。
因此制作了一个响应式容器 - 行,其中有 4 个不同宽度的单元格。当我的 phone 处于纵向模式时,它正在按预期加载网站。但是当我把它变成横向时——只有这个有 4 个单元格的容器——跳回“large/medium”屏幕版本——单元格彼此相邻排列而不是垂直......(附上图片以使其清晰) .
Portrait mode - works alright
Landscape mode - only this container uses different width
Back to portrait from landscape - same problem
对此有何建议?
<div class="w3-cell-row" style="width: 100%; background: #2D9595; padding-left: 3%; padding-right: 3%;">
<div class="w3-container w3-cell w3-mobile" style="padding: 3%">
</div>
<div class="w3-container w3-cell w3-mobile" style="padding: 3%">
</div>
<div class="w3-container w3-cell w3-mobile" style="padding: 3%">
</div>
<div class="w3-container w3-cell w3-mobile" style="padding: 3%">
</div>
</div>
谢谢
测试后,我的猜测是 CSS display: table;
可能会在旋转时重新计算和调整宽度。为了保持一致,请尝试对每个 .w3-cell-row
应用百分比宽度,这只会影响 600 像素及以下的宽度。
.w3-cell-row {
width: 100%;
padding: 0 3%;
background: #2D9595;
}
.w3-cell-row .w3-container {
padding: 3%;
/* table-layout: fixed; */
}
.w3-cell-row .w3-container:nth-child(1) {
background-color: pink;
width: 30%;
}
.w3-cell-row .w3-container:nth-child(2) {
background-color: green;
width: 40%;
}
.w3-cell-row .w3-container:nth-child(3) {
background-color: blue;
width: 15%;
}
.w3-cell-row .w3-container:nth-child(4) {
background-color: orange;
width: 15%;
}
<div class="w3-cell-row">
<div class="w3-container w3-cell w3-mobile">
adipisicing elit. Rerum
</div>
<div class="w3-container w3-cell w3-mobile">
consectetur adipisicing
</div>
<div class="w3-container w3-cell w3-mobile">
Lorem ipsum dolor sit amet
</div>
<div class="w3-container w3-cell w3-mobile">
Eos, aut?
</div>
</div>
根据 w3.css 的文档:
Responsive Layout
The w3-mobile class adds mobile first responsiveness to any HTML
element.
Used together with w3-cell it will display the layout columns
vertically on small screens/mobile phones and horizontally on
medium/large screens.
所以这按预期工作。
另一方面,“不同宽度”在两种模式(纵向和横向)上都存在,问题似乎已解决,删除 div 的填充(3%,左和右)与 class "w3-cell-row".
刚开始使用W3.css,还没有找到一个小问题的解决方案,这个问题似乎只出现在移动版本上。
因此制作了一个响应式容器 - 行,其中有 4 个不同宽度的单元格。当我的 phone 处于纵向模式时,它正在按预期加载网站。但是当我把它变成横向时——只有这个有 4 个单元格的容器——跳回“large/medium”屏幕版本——单元格彼此相邻排列而不是垂直......(附上图片以使其清晰) .
Portrait mode - works alright
Landscape mode - only this container uses different width
Back to portrait from landscape - same problem
对此有何建议?
<div class="w3-cell-row" style="width: 100%; background: #2D9595; padding-left: 3%; padding-right: 3%;">
<div class="w3-container w3-cell w3-mobile" style="padding: 3%">
</div>
<div class="w3-container w3-cell w3-mobile" style="padding: 3%">
</div>
<div class="w3-container w3-cell w3-mobile" style="padding: 3%">
</div>
<div class="w3-container w3-cell w3-mobile" style="padding: 3%">
</div>
</div>
谢谢
测试后,我的猜测是 CSS display: table;
可能会在旋转时重新计算和调整宽度。为了保持一致,请尝试对每个 .w3-cell-row
应用百分比宽度,这只会影响 600 像素及以下的宽度。
.w3-cell-row {
width: 100%;
padding: 0 3%;
background: #2D9595;
}
.w3-cell-row .w3-container {
padding: 3%;
/* table-layout: fixed; */
}
.w3-cell-row .w3-container:nth-child(1) {
background-color: pink;
width: 30%;
}
.w3-cell-row .w3-container:nth-child(2) {
background-color: green;
width: 40%;
}
.w3-cell-row .w3-container:nth-child(3) {
background-color: blue;
width: 15%;
}
.w3-cell-row .w3-container:nth-child(4) {
background-color: orange;
width: 15%;
}
<div class="w3-cell-row">
<div class="w3-container w3-cell w3-mobile">
adipisicing elit. Rerum
</div>
<div class="w3-container w3-cell w3-mobile">
consectetur adipisicing
</div>
<div class="w3-container w3-cell w3-mobile">
Lorem ipsum dolor sit amet
</div>
<div class="w3-container w3-cell w3-mobile">
Eos, aut?
</div>
</div>
根据 w3.css 的文档:
Responsive Layout
The w3-mobile class adds mobile first responsiveness to any HTML element.
Used together with w3-cell it will display the layout columns vertically on small screens/mobile phones and horizontally on medium/large screens.
所以这按预期工作。
另一方面,“不同宽度”在两种模式(纵向和横向)上都存在,问题似乎已解决,删除 div 的填充(3%,左和右)与 class "w3-cell-row".