Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何根据内容大小强制水平滚动_Html_Css - Fatal编程技术网

Html 如何根据内容大小强制水平滚动

Html 如何根据内容大小强制水平滚动,html,css,Html,Css,如果需要的话,我希望有一个水平滚动条,通过让“child”div按大小并排添加,而不是在父行不够宽时被推到下一行 我的代码如下。如果您将.mid设置为宽度:1000px,您将看到我想要的,只是我只希望它与动态生成的子对象一样宽 <html> <head> <style type="text/css"> .parent { width: 400px; background-color:

如果需要的话,我希望有一个水平滚动条,通过让“child”div按大小并排添加,而不是在父行不够宽时被推到下一行

我的代码如下。如果您将.mid设置为宽度:1000px,您将看到我想要的,只是我只希望它与动态生成的子对象一样宽

<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