Html 如何根据内容大小强制水平滚动
如果需要的话,我希望有一个水平滚动条,通过让“child”div按大小并排添加,而不是在父行不够宽时被推到下一行 我的代码如下。如果您将.mid设置为宽度:1000px,您将看到我想要的,只是我只希望它与动态生成的子对象一样宽Html 如何根据内容大小强制水平滚动,html,css,Html,Css,如果需要的话,我希望有一个水平滚动条,通过让“child”div按大小并排添加,而不是在父行不够宽时被推到下一行 我的代码如下。如果您将.mid设置为宽度:1000px,您将看到我想要的,只是我只希望它与动态生成的子对象一样宽 <html> <head> <style type="text/css"> .parent { width: 400px; background-color:
<html>
<head>
<style type="text/css">
.parent {
width: 400px;
background-color: #666;
overflow:scroll; /* cater to the older browsers */
overflow-y:hidden; /* Hide vertical*/
}
.mid {
background-color: red;
}
.child {
display:inline-block;
background-color: #ccc;
border: 1px solid black;
width: 190px;
}
</style>
</head>
<body>
<div class="parent">
<div class="mid">
<div class="child">
I am a child.
</div>
<div class="child">
I am a child.
</div>
<div class="child">
I am a child.
</div>
</div>
</div>
</body>
</html>
.家长{
宽度:400px;
背景色:#666;
溢出:滚动;/*以适应较旧的浏览器*/
溢出-y:隐藏;/*隐藏垂直*/
}
.中{
背景色:红色;
}
.孩子{
显示:内联块;
背景色:#ccc;
边框:1px纯黑;
宽度:190px;
}
我是一个孩子。
我是一个孩子。
我是一个孩子。
人们以前来过这里,找到了最好/最简单的方法。看这里:
人们以前来过这里,找到了最好/最简单的方法。看这里:
您可以尝试使用
溢出:自动您可以尝试使用溢出:自动检查,最好回答这个问题。您将需要Javascript来实现这一点,但是考虑到您已经使用它来动态生成子元素,这应该不是一个问题
假设您使用的是jQuery,在生成元素后添加以下两行:
var child = $('child');
$('.mid').width(child.length * child.outerWidth(true));
很抱歉沟通错误
然而,使用这种方法会产生另一个问题。使用display:inline block
时,会在每个div
后面添加一个空格,因此jQuery无法获得正确的宽度。但是,如果使用float:left
,则不会发生这种情况 见鬼,最好回答这个问题。您将需要Javascript来实现这一点,但是考虑到您已经使用它来动态生成子元素,这应该不是一个问题
假设您使用的是jQuery,在生成元素后添加以下两行:
var child = $('child');
$('.mid').width(child.length * child.outerWidth(true));
很抱歉沟通错误
然而,使用这种方法会产生另一个问题。使用display:inline block
时,会在每个div
后面添加一个空格,因此jQuery无法获得正确的宽度。但是,如果使用float:left
,则不会发生这种情况 为此,您可能需要Javascript。您会接受这样的解决方案吗?您可能需要Javascript来实现这一点。你会接受这样的解决方案吗?或者我误解了这个问题,或者我误解了这个问题,我实际上是在Rails的一个循环中生成子对象,而不是javascript。听起来你好像在说float:left也可以解决问题,但那不起作用。@99miles:不,我的意思是这两个词一起可以解决你的问题。我通常不喜欢使用display:inline block
将元素排列在一起。不,他说的是添加一些动态代码,计算出侧滚动条中有多少元素,然后设置mid..@Kieran的宽度。有点厌倦了这样说,但是不,在第二部分中,我要说的是,当您使用display:inline block
时,每个框后面都会有一个额外的空间,如下所示:。因此,在使用jQuery进行计算时,您需要使用float:left
。我实际上是在Rails的循环中生成子项,而不是javascript。听起来你好像在说float:left也可以解决问题,但那不起作用。@99miles:不,我的意思是这两个词一起可以解决你的问题。我通常不喜欢使用display:inline block
将元素排列在一起。不,他说的是添加一些动态代码,计算出侧滚动条中有多少元素,然后设置mid..@Kieran的宽度。有点厌倦了这样说,但是不,在第二部分中,我要说的是,当您使用display:inline block
时,每个框后面都会有一个额外的空间,如下所示:。因此,在使用jQuery进行计算时,需要使用float:left
。