100%宽度延伸过父元素
我使用HTML和CSS来编写一个类似卡片的按钮。
出于某种原因,图像下文本的width
始终超出父div
的边缘。
我可以进行调整以使其在桌面上观看时相对不明显,但在移动设备上观看时会变得非常痛苦。
.card {
width: 20%;
box-shadow: 0px 0px 10px gray;
}
.card:hover {
box-shadow: 0px 0px 20px black;
}
.card-img {
width: 100%;
}
.card-title {
margin: 10px;
display: inline-block;
font-family: Open Sans;
text-align: center;
width: 100%;
}
<div class="card">
<img class="card-img" src="http://prww-weather.com/logo.png" />
<p class="card-title">Card Title</p>
</div>
你可以试试这个:
https://jsfiddle.net/nbLLgx5x/
.card {
width: 20%;
box-shadow: 0px 0px 10px gray;
}
.card:hover {
box-shadow: 0px 0px 20px black;
}
.card-img {
width: 100%;
display: block;
}
.card-title {
padding: 10px;
font-family: Open Sans;
text-align: center;
margin: 0;
}
<div class="card">
<img class="card-img" src="http://prww-weather.com/logo.png" />
<p class="card-title">This is a very long card title</p>
</div>
使用padding
和border-box
.card {
width: 20%;
box-shadow: 0px 0px 10px gray;
}
.card:hover {
box-shadow: 0px 0px 20px black;
}
.card-img {
width: 100%;
}
.card-title {
margin: 0;
padding: 10px 0;
display: inline-block;
font-family: Open Sans;
text-align: center;
width: 100%;
box-sizing: border-box;
}
<div class="card">
<img class="card-img" src="http://prww-weather.com/logo.png" />
<p class="card-title">Card Title</p>
</div>
这一切都是由于您为卡片标题分配的保证金:10px。 这将消耗100%的父宽+ 10px左侧和10px右侧
要在卡片标题周围留出一个装订空间并将其限制在父区域内,请使用padding:10px
作为卡片标题,并启用box-sizing: border-box;
所有元素的财产。 (边框会允许填充,边框被认为是元素宽度本身的一部分)
* {
box-sizing: border-box;
}
.card {
width: 20%;
box-shadow: 0px 0px 10px gray;
}
.card:hover {
box-shadow: 0px 0px 20px black;
}
.card-img {
width: 100%;
}
.card-title {
padding: 10px;
display: inline-block;
font-family: Open Sans;
text-align: center;
width: 100%;
}
<div class="card">
<img class="card-img" src="http://prww-weather.com/logo.png" />
<p class="card-title">Card Title</p>
</div>
链接地址: http://www.djcxy.com/p/29431.html
上一篇: 100% width extends past parent element
下一篇: CSS horizontal scroll bar not showing, or there is blank space on the right