Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.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 使div子对象共享父对象宽度_Html_Css - Fatal编程技术网

Html 使div子对象共享父对象宽度

Html 使div子对象共享父对象宽度,html,css,Html,Css,基本上,我得到了一个由1+div子元素组成的div父元素(每个子元素中都有一个按钮)。 现在我想让按钮填满父对象的整个宽度,但要共享它。 也就是说,如果有一个子按钮,它应该填充100%——如果有两个,它们的宽度应该是每个大小的50%,等等 我该怎么做 编辑:按要求-代码如下(尽管我认为上面的解释更好): html: <div class="buttons"> <input class="submitbutton" type="submit" value="Registe

基本上,我得到了一个由1+div子元素组成的div父元素(每个子元素中都有一个按钮)。 现在我想让按钮填满父对象的整个宽度,但要共享它。 也就是说,如果有一个子按钮,它应该填充100%——如果有两个,它们的宽度应该是每个大小的50%,等等

我该怎么做

编辑:按要求-代码如下(尽管我认为上面的解释更好):

html:

<div class="buttons">
    <input class="submitbutton" type="submit" value="Register">
    <input class="submitbutton" type="submit" value="Cancel">
</div>

您可以将子元素宽度定义为百分比或其父元素宽度。大概是这样的:

<div id="parent" style="width:1000px;">
<div id="child1" style="width:25%"></div>
<div id="child2" style="width:25%"></div>
<div id="child3" style="width:25%"></div>
<div id="child4" style="width:25%"></div>
</div>

在这种情况下,每个子元素的宽度将为250px

根据您的要求,以下是使用CSS类的相同内容:

<style type="text/css">
.parent {
    width:1000px;
}
.child {
    width:25%;
}
</style>
<div id="parent" class="parent">
<div id="child1" class="child"></div>
<div id="child2" class="child"></div>
<div id="child3" class="child"></div>
<div id="child4" class="child"></div>
</div>

.家长{
宽度:1000px;
}
.孩子{
宽度:25%;
}

您可以将子元素宽度定义为百分比或其父元素宽度。大概是这样的:

<div id="parent" style="width:1000px;">
<div id="child1" style="width:25%"></div>
<div id="child2" style="width:25%"></div>
<div id="child3" style="width:25%"></div>
<div id="child4" style="width:25%"></div>
</div>

在这种情况下,每个子元素的宽度将为250px

根据您的要求,以下是使用CSS类的相同内容:

<style type="text/css">
.parent {
    width:1000px;
}
.child {
    width:25%;
}
</style>
<div id="parent" class="parent">
<div id="child1" class="child"></div>
<div id="child2" class="child"></div>
<div id="child3" class="child"></div>
<div id="child4" class="child"></div>
</div>

.家长{
宽度:1000px;
}
.孩子{
宽度:25%;
}

如果您不确定将有多少个ChildButton,您可以为您的孩子使用一些故障保护类

e、 差不多

.grid4button { width: 25%; }
.grid3button { width: 33.33333% }
.grid2button { width: 50%; }
等等(我想你明白了)

现在需要一些js来检查ChildButton的数量,并将所需的类名附加到每个按钮上

编辑:

var childs = $(".buttons").children().length;
$('buttons .submitbutton').addClass('grid'+childs+'button');

可以是jquery的一个示例js检查。

如果您不确定将有多少个ChildButton,您可以为您的孩子使用一些故障保护类

e、 差不多

.grid4button { width: 25%; }
.grid3button { width: 33.33333% }
.grid2button { width: 50%; }
等等(我想你明白了)

现在需要一些js来检查ChildButton的数量,并将所需的类名附加到每个按钮上

编辑:

var childs = $(".buttons").children().length;
$('buttons .submitbutton').addClass('grid'+childs+'button');

可能是jquery的一个示例js检查。

正如表是dépassé一样,我只会使用一个带有一行()的表,并为每个按钮动态添加单元格()。给出宽度:100%,你就完成了。大多数实现工具栏类的js框架都使用表。

正如表是dépassé一样,我只使用一个带有一行()的表,并为每个按钮动态添加单元格()。给出宽度:100%,你就完成了。大多数实现工具栏类的js框架都使用表。

如果您希望避免使用纯CSS添加额外的标记,那么Flexbox就是您想要的

大多数浏览器支持Flexbox的某些版本,但IE直到版本10才支持它(请参阅:)。请注意,虽然旧的Webkit浏览器(包括移动设备)确实支持Flexbox,但它支持Flexbox,这就是为什么我省略了这些浏览器的属性

如果需要更好的浏览器支持,则需要使用额外的元素


如果您希望避免使用纯CSS添加额外的标记,那么Flexbox就是您想要的

大多数浏览器支持Flexbox的某些版本,但IE直到版本10才支持它(请参阅:)。请注意,虽然旧的Webkit浏览器(包括移动设备)确实支持Flexbox,但它支持Flexbox,这就是为什么我省略了这些浏览器的属性

如果需要更好的浏览器支持,则需要使用额外的元素


您可以将它们括在li中并使用以下css:

.buttons > li {
display: table-cell !important; 
width: 1% !important;
float: none !important;
}

.buttons > li >* {
width:100%
}

您可以将它们封装在li中并使用此css:

.buttons > li {
display: table-cell !important; 
width: 1% !important;
float: none !important;
}

.buttons > li >* {
width:100%
}


请发布一些代码。父div是否有一个设置的宽度?@j08691我已经用该代码进行了更新。这需要某种计算和条件逻辑,因此您需要javascript;如果这是静态html/CSS,而javascript不是一个选项,那么你就不能按照你的建议去做。如果您使用的是像php这样的预处理器,那么您可以输出一些内联样式来完成您想要的任务。如果可以使用JS,则可以在加载元素后调整样式。没有这一点,我认为没有办法。虽然我很感兴趣,但我希望有人能给出一个答案。请发布一些代码。父div是否有一个设置的宽度?@j08691我已经用代码更新了这需要某种计算和条件逻辑,所以你需要javascript来实现这一点;如果这是静态html/CSS,而javascript不是一个选项,那么你就不能按照你的建议去做。如果您使用的是像php这样的预处理器,那么您可以输出一些内联样式来完成您想要的任务。如果可以使用JS,则可以在加载元素后调整样式。没有这一点,我认为没有办法。我希望有人能想出一个答案,虽然我会非常感兴趣。我明白了-但是我想在css中定义它,并让它知道如何自动定义宽度。为您更新代码。这两个例子提供了相同的最终结果。顺便说一句,使用
style=“width:25%”
是在CSS中定义的,除了我在没有课的情况下这样做。提问者事先不知道孩子的数量。抱歉,我没有读到那个评论。在这种情况下,正如前面提到的,我将获得子元素的数量,并使用JavaScript/jQuery设置子元素的宽度。我明白了-但是我想在css中定义它,并让它知道如何自动定义宽度。为您更新代码。这两个例子提供了相同的最终结果。顺便说一句,使用
style=“width:25%”
是在CSS中定义的,除了我在没有课的情况下这样做。提问者事先不知道孩子的数量。抱歉,我没有读到那个评论。在这种情况下,如前所述,我将使用JavaScript/jQuery.Nice解决方案获取子元素的数量并设置子元素的宽度。您不必将它们包含在
  • 元素中。具有
    display的div:表单元格
    也同样有效(请参阅)。这是一个很好的解决方案。您不必将它们包含在
  • 元素中。带
    显示的div:表格单元格