在某些情况下,Firefox 和 Opera 浏览器在解释 CSS max 方面与 Chrome 和 IE 相比存在差异-width 属性。具体来说,当图像放置在表格单元格 (display: table-cell) 中并指定 max-width: 100% 时,图像宽度在 Firefox 和 Opera 中会被忽略,而在其他浏览器中会被正确约束。
要理解此行为背后的原因,请务必注意 W3C 规范中定义的 CSS max-width 属性仅适用于块级元素。内联元素(例如 )不受此属性的影响。在提供的 HTML 中,默认情况下,元素设置为 display: inline,这解释了为什么 Firefox 和 Opera 会忽略 max-width 样式。
要解决此问题并强制执行预期的图像宽度,有必要显式设置 要显示的元素:CSS 样式内的块。但是,使用此解决方法可能会改变页面布局和格式。
符合标准的解决方案是将表格单元格 (display: table-cell) 放置在包装 div 中设置为显示:表格和表格布局:固定。这种方法确保表中的所有子元素都遵守指定的宽度约束,包括 和 。最大宽度元素:100%。
另一个选项是利用 JavaScript 来检测浏览器对 display: table-cell 元素中最大宽度的支持。如果浏览器本身不支持此行为,则可以使用 JavaScript 实现替代布局策略。
<code class="HTML"><div style="display: table;"> <div style="display: table-cell; padding: 15px; width: 200px;"> <img src="..." style="display: block; max-width: 100%" /> <p>Text content...</p> </div> </div></code>
以上是为什么表格单元格内图像上的'max-width: 100%”在 Firefox 和 Opera 中的表现与 Chrome 和 IE 中不同?的详细内容。更多信息请关注PHP中文网其他相关文章!