table-单元格内容大小不同
table-cell content is different sizes
我在 table 中显示了多个带有页脚文本的圆圈。在所有浏览器上,圆形图像的大小相同,IE11 和 edge 除外。
这就是我目前拥有的(对于大型 css 转储感到抱歉 - 我真的不知道是什么导致了这个问题):
.circle-container {
display: table;
}
.circle {
display: table-cell;
table-layout: fixed;
padding: 40px 20px;
vertical-align: top;
-webkit-transform: translateZ(0);
transform: translateZ(0);
box-shadow: 0 0 1px rgba(0, 0, 0, 0);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-moz-osx-font-smoothing: grayscale;
cursor: pointer;
}
.circle>p {
display: block;
width: 100%;
text-align: center;
margin: 40px 0 0;
}
.circle>div {
position: relative;
}
.circle>div:before {
content: '';
position: absolute;
border: #54314E solid 4px;
top: 0;
right: 0;
bottom: 0;
left: 0;
-webkit-transition-duration: 0.3s;
transition-duration: 0.3s;
-webkit-transition-property: top, right, bottom, left;
transition-property: top, right, bottom, left;
border-radius: 50%;
z-index: 1;
}
.circle>div>img {
border-radius: 50%;
width: 100%;
height: auto;
}
.circle:hover>div:before,
.circle:focus>div:before,
.circle:active>div:before,
.circle.active>div:before {
top: -15px;
right: -15px;
bottom: -15px;
left: -15px;
}
<div class="circle-container">
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>Corporate & <br>Institutional <br>Banking</b></p>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>Global <br>Transactional <br>Solutions & <br>Client Experience</b></p>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>Financial Markets</b></p>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>International</b></p>
</div>
</div>
我注意到当我删除圆圈下的文本时问题并不明显:
.circle-container {
display: table;
}
.circle {
display: table-cell;
table-layout: fixed;
padding: 40px 20px;
vertical-align: top;
-webkit-transform: translateZ(0);
transform: translateZ(0);
box-shadow: 0 0 1px rgba(0, 0, 0, 0);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-moz-osx-font-smoothing: grayscale;
cursor: pointer;
}
.circle>p {
display: block;
width: 100%;
text-align: center;
margin: 40px 0 0;
}
.circle>div {
position: relative;
}
.circle>div:before {
content: '';
position: absolute;
border: #54314E solid 4px;
top: 0;
right: 0;
bottom: 0;
left: 0;
-webkit-transition-duration: 0.3s;
transition-duration: 0.3s;
-webkit-transition-property: top, right, bottom, left;
transition-property: top, right, bottom, left;
border-radius: 50%;
z-index: 1;
}
.circle>div>img {
border-radius: 50%;
width: 100%;
height: auto;
}
.circle:hover>div:before,
.circle:focus>div:before,
.circle:active>div:before,
.circle.active>div:before {
top: -15px;
right: -15px;
bottom: -15px;
left: -15px;
}
<div class="circle-container">
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
</div>
</div>
我需要保留当前的功能和布局。
注意:我不知道会生成多少个带有文本的圆圈,但是p.length == .circle.length
.这就是为什么我首先选择使用 table-cell
的原因,因为我认为它会减少手动设置宽度 "run time".
table-layout:fixed
仅适用于 display:table
而不是 table-cell
,然后添加 width:100%
注意:最新的 Firefox 出现了这个问题
.circle-container {
display: table;
table-layout: fixed;
width:100%
}
.circle {
display: table-cell;
padding: 40px 20px;
vertical-align: top;
-webkit-transform: translateZ(0);
transform: translateZ(0);
box-shadow: 0 0 1px rgba(0, 0, 0, 0);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-moz-osx-font-smoothing: grayscale;
cursor: pointer;
}
.circle>p {
display: block;
width: 100%;
text-align: center;
margin: 40px 0 0;
}
.circle>div {
position: relative;
}
.circle>div:before {
content: '';
position: absolute;
border: #54314E solid 4px;
top: 0;
right: 0;
bottom: 0;
left: 0;
-webkit-transition-duration: 0.3s;
transition-duration: 0.3s;
-webkit-transition-property: top, right, bottom, left;
transition-property: top, right, bottom, left;
border-radius: 50%;
z-index: 1;
}
.circle>div>img {
border-radius: 50%;
width: 100%;
height: auto;
}
.circle:hover>div:before,
.circle:focus>div:before,
.circle:active>div:before,
.circle.active>div:before {
top: -15px;
right: -15px;
bottom: -15px;
left: -15px;
}
<div class="circle-container">
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>Corporate & <br>Institutional <br>Banking</b></p>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>Global <br>Transactional <br>Solutions & <br>Client Experience</b></p>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>Financial Markets</b></p>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>International</b></p>
</div>
</div>
我在 table 中显示了多个带有页脚文本的圆圈。在所有浏览器上,圆形图像的大小相同,IE11 和 edge 除外。
这就是我目前拥有的(对于大型 css 转储感到抱歉 - 我真的不知道是什么导致了这个问题):
.circle-container {
display: table;
}
.circle {
display: table-cell;
table-layout: fixed;
padding: 40px 20px;
vertical-align: top;
-webkit-transform: translateZ(0);
transform: translateZ(0);
box-shadow: 0 0 1px rgba(0, 0, 0, 0);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-moz-osx-font-smoothing: grayscale;
cursor: pointer;
}
.circle>p {
display: block;
width: 100%;
text-align: center;
margin: 40px 0 0;
}
.circle>div {
position: relative;
}
.circle>div:before {
content: '';
position: absolute;
border: #54314E solid 4px;
top: 0;
right: 0;
bottom: 0;
left: 0;
-webkit-transition-duration: 0.3s;
transition-duration: 0.3s;
-webkit-transition-property: top, right, bottom, left;
transition-property: top, right, bottom, left;
border-radius: 50%;
z-index: 1;
}
.circle>div>img {
border-radius: 50%;
width: 100%;
height: auto;
}
.circle:hover>div:before,
.circle:focus>div:before,
.circle:active>div:before,
.circle.active>div:before {
top: -15px;
right: -15px;
bottom: -15px;
left: -15px;
}
<div class="circle-container">
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>Corporate & <br>Institutional <br>Banking</b></p>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>Global <br>Transactional <br>Solutions & <br>Client Experience</b></p>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>Financial Markets</b></p>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>International</b></p>
</div>
</div>
我注意到当我删除圆圈下的文本时问题并不明显:
.circle-container {
display: table;
}
.circle {
display: table-cell;
table-layout: fixed;
padding: 40px 20px;
vertical-align: top;
-webkit-transform: translateZ(0);
transform: translateZ(0);
box-shadow: 0 0 1px rgba(0, 0, 0, 0);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-moz-osx-font-smoothing: grayscale;
cursor: pointer;
}
.circle>p {
display: block;
width: 100%;
text-align: center;
margin: 40px 0 0;
}
.circle>div {
position: relative;
}
.circle>div:before {
content: '';
position: absolute;
border: #54314E solid 4px;
top: 0;
right: 0;
bottom: 0;
left: 0;
-webkit-transition-duration: 0.3s;
transition-duration: 0.3s;
-webkit-transition-property: top, right, bottom, left;
transition-property: top, right, bottom, left;
border-radius: 50%;
z-index: 1;
}
.circle>div>img {
border-radius: 50%;
width: 100%;
height: auto;
}
.circle:hover>div:before,
.circle:focus>div:before,
.circle:active>div:before,
.circle.active>div:before {
top: -15px;
right: -15px;
bottom: -15px;
left: -15px;
}
<div class="circle-container">
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
</div>
</div>
我需要保留当前的功能和布局。
注意:我不知道会生成多少个带有文本的圆圈,但是p.length == .circle.length
.这就是为什么我首先选择使用 table-cell
的原因,因为我认为它会减少手动设置宽度 "run time".
table-layout:fixed
仅适用于 display:table
而不是 table-cell
,然后添加 width:100%
注意:最新的 Firefox 出现了这个问题
.circle-container {
display: table;
table-layout: fixed;
width:100%
}
.circle {
display: table-cell;
padding: 40px 20px;
vertical-align: top;
-webkit-transform: translateZ(0);
transform: translateZ(0);
box-shadow: 0 0 1px rgba(0, 0, 0, 0);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-moz-osx-font-smoothing: grayscale;
cursor: pointer;
}
.circle>p {
display: block;
width: 100%;
text-align: center;
margin: 40px 0 0;
}
.circle>div {
position: relative;
}
.circle>div:before {
content: '';
position: absolute;
border: #54314E solid 4px;
top: 0;
right: 0;
bottom: 0;
left: 0;
-webkit-transition-duration: 0.3s;
transition-duration: 0.3s;
-webkit-transition-property: top, right, bottom, left;
transition-property: top, right, bottom, left;
border-radius: 50%;
z-index: 1;
}
.circle>div>img {
border-radius: 50%;
width: 100%;
height: auto;
}
.circle:hover>div:before,
.circle:focus>div:before,
.circle:active>div:before,
.circle.active>div:before {
top: -15px;
right: -15px;
bottom: -15px;
left: -15px;
}
<div class="circle-container">
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>Corporate & <br>Institutional <br>Banking</b></p>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>Global <br>Transactional <br>Solutions & <br>Client Experience</b></p>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>Financial Markets</b></p>
</div>
<div class="circle">
<div>
<img src="http://placehold.it/350x350">
</div>
<p><b>International</b></p>
</div>
</div>