Javascript HTML和CSS:如何布局宽度为100%,左侧为300px的div标记

Javascript HTML和CSS:如何布局宽度为100%,左侧为300px的div标记,javascript,html,css,Javascript,Html,Css,我在设置div标记的样式时遇到问题。我想要一个div标签,从左边开始:300px,一直延伸到浏览器屏幕的末尾。但是如果我输入width:100%,div标签将超出浏览器屏幕。只需使用right div { position: absolute; left: 300px; right: 0; } 您还可以对“顶部”和“底部”执行此操作,从而生成一个完整的页面div: div { position: absolute; top: 0; bottom: 0; left:

我在设置div标记的样式时遇到问题。我想要一个div标签,从左边开始:300px,一直延伸到浏览器屏幕的末尾。但是如果我输入width:100%,div标签将超出浏览器屏幕。

只需使用right

div {
  position: absolute;
  left: 300px;
  right: 0;
}

您还可以对“顶部”和“底部”执行此操作,从而生成一个完整的页面div:

div {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
相对位置:

div{
位置:相对位置;
左:30%;
右:0;
保证金权利:30%;
}

Lorem ipsum dolor sit amet,是一位杰出的献身者。在埃拉特·乌尔纳,非维利特人的中间,流苏。nisi lobortis aliquet中的整数发酵est。杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲。大白鼠、大白鼠、大白鼠、大白鼠。这是一个很好的例子。不要喝牛奶。
Lorem ipsum dolor sit amet,是一位杰出的献身者。在埃拉特·乌尔纳,非维利特人的中间,流苏。nisi lobortis aliquet中的整数发酵est。杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲、杜仲。大白鼠、大白鼠、大白鼠、大白鼠。这是一个很好的例子。不要喝牛奶。
使用JQuery

$('.elementClass').width($(window).width()-300);

您也可以在宽度上使用
calc

例如:

div {
 position: absolute;
 left: 300px;
 width: calc(100% - 300px);
}

根据评论,它不是在所有浏览器中都可用。。。不过这是一把小提琴。

我相信你可以通过添加“padding left”或“margin left”而不是“left”来解决问题。并且不要指定“宽度:100%”。

另一个选项是使用left作为%

left: 30%;
width: 70%;

试试这个,它应该可以正常工作:)

代码:

div{
高度:100px;
左边距:300px;
背景色:红色;
}

内容
这里有很多过火的解决方案

div
是一个块元素,它自然会扩展到其父元素的整个水平宽度。这意味着您只需要将它从左边稍微推一点,作为最小的解决方案,并且根据包含的元素,它将开箱即用。将一个类添加到
div
以获得一些最佳实践并使用:

.class {
  width: auto; // is default
  margin-left: 300px;
}


注意:这可能会抛出页面其余部分的布局,尽管测试此代码布局不会从左侧300px开始,我是否遗漏了什么?@crazymatt可能。你有小提琴吗?这是不可滚动的,绝对元素不流动。将其设置为相对,我会竖起大拇指,但这必须有一点不同。这只有在div的内容大于剩余空间时才有效。@SethMcClaine详细说明您的评论。默认情况下,div具有'dispaly:block',它获取其父级的'width'减去左/右填充、左/右边距和左/右边框。@SethMcClaine在第一个示例中-实际有效!该块已向右“移动”50像素。事实上,它使滚动出现,这是因为一个太长的字。这与本案无关。在第二种情况下,是的,你是对的。但这是一些具体的例子。但当您说“div”时,没有指定任何样式代码,您假定它具有默认样式(display:block)。我相信我的答案不应该得到“-1”分,这意味着它没有用处。这很有用。@SethMcClaine告诉你!哈哈,开玩笑而已。谢谢你指出这一点,我不知道我真的很喜欢这个解决方案,不知道它是可用的(+1)它实际上是非常受支持的,也是我个人最喜欢的方法。因为它是纯CSS,所以它是最平滑、最快的解决方案。您必须将其包装在一个侦听器中,以用于window.onresize,否则当用户调整其浏览器窗口的大小时,它将中断。也许jquery是最好的方法,只要我在调整大小时也这样做。这是一种蛮力方式,但这是非常一致的。。我可以用这种方式。。。如果我使用CSS,我必须考虑其他浏览器将在哪里使用SAMENO理由来使用JavaScript为您在CSS中可以很容易实现的东西。<代码>设备宽度< /代码>不存在作为代码>宽度> /代码>的值,自动默认是可以的,因此,您可以删除
width
声明,因为
div
是一个
display:block
元素,将自然展开以填充水平屏幕空间。删除宽度后,div将自动调用expand以扩展到剩余区域,因为它是一个block元素。