覆盖 <div> 内联宽度样式以使元素拉伸到内​​容?

Posted

技术标签:

【中文标题】覆盖 <div> 内联宽度样式以使元素拉伸到内​​容?【英文标题】:Overriding <div> inline width style to make element stretch to contents? 【发布时间】:2013-06-14 21:16:26 【问题描述】:

致力于重新设计客户的 Intranet。我不能修改现有的 html,只能提供一个覆盖样式表。

在 HTML 中是一个正文内容包装器 - 每当调整窗口大小时,它都会获得一个明确的宽度和高度设置为内联到窗口的宽度和高度:

<div id="s4-workspace" style="height: 660px; width: 1331px;">

现在,一些页面在这个内容包装器中有一个大表格(至少 1600 像素宽),当窗口小于这个值时,表格会脱离容器,留下所有背景和填充。所有其他元素都遵循包装宽度,向右滚动时会产生一大堆负空间:

有没有办法覆盖内联宽度并允许容器 div #s4-workspace 延伸到其内容?我最好的猜测是设置width: auto !important;,但 chrome 和 firefox 仍然优先考虑内联样式。任何帮助表示赞赏。

【问题讨论】:

你能放个小提琴吗?!因为 chrome/firefox 肯定会考虑 !important note!!可能是您可以检查元素,然后查看哪个超出了您所做的更改 如果这是与 SharePoint 相关的check out this link 【参考方案1】:

您可以像这样覆盖元素内联样式:

div[style] 
   background: yellow !important;
    height: auto!important

看看这个fiddle

【讨论】:

【参考方案2】:

在您的特定实例中(覆盖宽度/高度以防止内容溢出),更改显示类型将满足您的需要:

http://cssdeck.com/labs/kfpnpruw

<div class="foo" style="width: 400px; height: 300px;">
  Foo
  <img src="http://placekitten.com/600/300" /><!-- 600x300 image -->
</div>

.foo 
  background: yellow;
  display: table-cell;
  padding: .5em;

设置为 table-cell 的元素会将宽度和高度属性视为 建议 值,而不是绝对值。

【讨论】:

正是我需要的。非常感谢!

以上是关于覆盖 <div> 内联宽度样式以使元素拉伸到内​​容?的主要内容,如果未能解决你的问题,请参考以下文章

内嵌元素块元素内联块的区分以及内嵌元素的问题

块元素内联元素内联块元素

2.7块元素内联元素内联块元素

块级标签(行元素)和内联标签(行内元素)

js中如何取得一个div的width?注意此css的width是在<style></style>中设置的。

如何在nativescript中使Label元素内联?