我有一个div
类widget
,我将width
和length
样式应用到我的窗口小部件类中,但出于某种原因,宽度仍然是100%的屏幕而不是200px,就像我在下面定义的那样。有人可以帮忙吗?
这是一个小提琴:
https://jsfiddle.net/ps17t1a5/
html, body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
display: table
}
.widget {
display: table-cell;
text-align: center;
vertical-align: middle;
margin: 0;
width: 500px;
height: 200px;
padding: 7px;
}
<body ng-controller="main_controller">
<div class="widget">
<h1>{[city]}, {[state]}</h1>
<div>
<h1 style="float: left">{[current_temp | degree]}</h1> <h1 style="float: right">afasf</h1>
</div>
<p>{[today_day]}</p>
<p>{[today_high | degree]} / {[today_low | degree]}</p>
</div>
</body>
答案 0 :(得分:1)
Cells
内的 table
应加起来为100%
维度的table
。您已将表格设为body
元素width: 100%
和height: 100%
- 您的.widget
是唯一的cell
,因此可以使用整个空间的结果。只需删除display: table
和display:table-cell
规则,维度规则就可以正常运行:
https://jsfiddle.net/ilpo/ps17t1a5/3/
我不知道你为什么要首先使用display:table-cell
,但我认为它是垂直和水平居中的。如果是这种情况,请改用:
position: absolute; //or relative or fixed depending on your needs
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
答案 1 :(得分:0)
你需要放200px而不是200.
答案 2 :(得分:0)
高度和宽度定义不正确,它们应为500px和200px
答案 3 :(得分:0)
从display: table
中移除body
会使所呈现的元素尊重width
属性。
阅读the docs,它声明这会使div
表现得像table
元素。
在这种情况下,看起来table
只包含一个cell
,并且由于同一body
元素的属性为width:100%
,因此widget
1}}元素具有单元格的整个宽度(因此是表格的整个宽度,因此是页面的整个宽度)
这有意义吗?
html,
body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
/*display: table;*/
}
.widget {
/* added to show box boundaries */
border: 1px solid green;
display: table-cell;
text-align: center;
vertical-align: middle;
margin: 0;
width: 310px;
height: 160px;
padding: 7px;
}
<body ng-controller="main_controller">
<div class="widget">
<h1>juno, alaska</h1>
<div>
<h1 style="float: left">10</h1>
<h1 style="float: right">cool</h1>
</div>
<p>today</p>
<p>69/ 88</p>
</div>
</body>