Twitter Bootstrap 3中的图像默认情况下没有响应
Images not responsive by default in Twitter Bootstrap 3?
在新版本3.0中,如果图像是具有相同类名的div的一部分,则我必须将图像的类名设置为col-lg-4 col-sm-4 col-4
,以使图像响应所有断点。
在版本2中,图像的CSS属性默认继承了父级的div属性。
这是正确的吗?
引导4
对于Bootstrap 4,请使用Sass(SCSS):
// make images responisve by default
img {
@extend .img-fluid;
}
针对版本3更新了答案
Bootstrap 3有一个用于响应图像的特殊类(将最大宽度设置为100%)。此类定义为:
.img-responsive {
display: block;
height: auto;
max-width: 100%;
}
注意img标签默认为:
img {
vertical-align: middle;
border: 0;
page-break-inside: avoid;
max-width: 100% !important;
}
因此,使用class="img-responsive"
使您的图像具有响应性。
要使所有图像默认响应:
css:在引导程序css下添加以下代码:
img {
display: block;
height: auto;
max-width: 100%;
}
less:在您的mixin.less中添加以下代码:
img {
&:extend(.img-responsive);
}
注:要求小于1.4.0。请参阅:https://stackoverflow.com/a/15573240/1596547
旋转木马
转盘内的img标签默认情况下是有响应的
语义规则
另请参阅@its me的答案(https://stackoverflow.com/a/18653778/1596547)。默认情况下,使用以上方法使所有图像都具有响应性,会将图像转换为块级元素。段落(<p>
)中不允许使用块级元素,请参阅:https://stackoverflow.com/a/4291515/1596547
据我所知,块级元素与内联元素的区别被一组更复杂的内容类别所取代。另请参阅:https://developer.mozilla.org/en-US/docs/Web/HTML/Inline_elemente#Inline_vs._block-水平。因此,在HTML5中,p标签可以包含任何与普通字符数据混合的短语元素。(请参见:http://www.w3.org/TR/html-markup/p.html)img
标签就是这样一个措辞元素。display属性的img
标记的默认值实际上是inline-block
。将显示属性更改为块不会违反前面的任何规则。
块级元素(display:block
)占用其父元素的所有可用空间,这似乎正是您对响应图像的期望。因此,设置display: block;
似乎是一个合理的选择,必须优先于inline-block
声明。
@its me建议的需要inline-block
的p元素内的图像(https://stackoverflow.com/a/18653778/1596547)可能根本不应该做出回应。
@BassJobsen提出了一个很好的建议,但我会使用display: inline-block;
而不是display: block;
,因为这感觉更具语义1(这意味着你可以更确信自己没有在其他地方搞砸)。
所以,我的应该是这样的:
img {
display: inline-block;
height: auto;
max-width: 100%;
}
如果我的理解有缺陷,请告诉我。:)
[1]:首先,如果是用例,图像几乎总是被包裹在块级元素中;然后,我们还使用像段落(p
)这样的元素中的图像,其中inline-block
比block
元素更合适。
在尝试确定对所有图像应用img-responsive
是否安全后,来到这里。
@its_me的回答让我认为,将其应用于p
元素下的图像是不安全的。
这似乎不是引导团队的想法。
这就是为什么图像在引导程序3:中默认情况下没有响应的原因
总结是,它打破了大量毫无戒心的第三方小工具(包括谷歌地图),可以理解的是,这些小工具不会预计其中的图像会被强制调整为其他宽度。这就是为什么我们在Bootstrap v3中回滚了Bootstrap v2的"默认情况下镜像是响应的"方法,转而使用显式.img响应类。
https://github.com/twbs/bootstrap/issues/18178#issuecomment-154180107
- nodejs或expressjs在没有返回响应的情况下重复调用路由
- Nodejs-websocket:如何在没有服务器响应的情况下连续发送客户端消息
- 如何在没有 Web 服务器的情况下做出响应.js工作
- 在不轮询更改的情况下响应服务器端渲染
- 为什么在未读取响应的情况下,节点http客户端仍在运行
- 如何在没有页面的情况下使AJAX读回响应's源并且没有JSON
- 如何在不丢失Jssor图像滑块的情况下更改其尺寸'其响应特性、图像纵横比等仅适用于iPhone设备
- Twitter Bootstrap 3中的图像默认情况下没有响应
- 在不使用XMLHTTPRequest的情况下调用webservice并在Javascript中获取JSON响应
- 在不使用Java中的POJO类的情况下解析不同的JSON响应
- 在不指定'的情况下获取json响应;.json在URL'中;
- 如何在不等待ajax响应的情况下执行计数统计
- 如何在不占用空间的情况下隐藏元素,同时还能响应事件
- 在不失去响应性的情况下绘制大量画布元素
- 如何在给定新的Firebase响应的情况下更新HTML中的类
- AngularJS的承诺在没有等待异步响应的情况下被拒绝(它应该会被解析)
- 如何在不影响图像大小的情况下对响应图像进行中心缩放
- 如何在每次JSON不同的情况下将Solr JSON响应转换为HTML
- 在下载文件出错的情况下,管理表单提交上的JSON服务器响应
- 如何在知道其标头和POLL响应的情况下进行POST查询