CSS宽度不适用

时间:2019-07-14 20:43:52

标签: css width

为什么下面的代码的p宽度不同?

我尝试将它们包装在表格中,并按照css width property not applying properly添加width:100%,但这无济于事。

body {
  background-color: aliceblue;
}

p {
  border-radius: 5px;
  background-color: cadetblue;
  font-size: 64px;
  width: 90px;
  text-align: -webkit-center;
  color: white;
  height: 90px;
  display: table-cell;
  vertical-align: middle;
  font-family: helvetica;
}
<p>0</p>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
<p>7</p>
<p>8</p>
<p>9</p>
<p>10</p>
<p>11</p>
<p>12</p>
<p>13</p>
<p>14</p>
<p>15</p>
<p>&nbsp;</p>

2 个答案:

答案 0 :(得分:2)

如果您想继续使用表格样式,可以通过将表格单元格包装在表格中,应用100%的宽度并将beforeCreate设置为table-layout来完成建议的操作。固定的表格布局将阻止表格单元格的默认自动宽度行为。

fixed
body {
  background-color: aliceblue;
}
p {
  border-radius: 5px;
  background-color: cadetblue;
  font-size: 20px;
  width: 90px;
  text-align:center;
  color: white;
  height: 90px;
  display: table-cell;
  vertical-align: middle;
  font-family: helvetica;
}
.table {
  display:table;
  table-layout:fixed;
  width:auto;
}

答案 1 :(得分:1)

来自the specification

  

表,内联表,表行组,表列,表列组,表标题组,表页脚组,表行,表单元格和表标题   这些值使元素的行为类似于表元素(要受表章节中所述的限制)。

基本上,您面临表的某些默认行为。

以下是说明类似情况的示例:

td {
 width:100px; /* This is restricted by the width of table*/
 border:1px solid;
}
<table>
  <tr>
    <td>2</td>
    <td>1</td>
    <td>1</td>
    <td>2</td>
    <td>2</td>
    <td>1</td>
    <td>1</td>
    <td>2</td>
    <td>2</td>
    <td>1</td>
    <td>1</td>
    <td>2</td>
    <td>2</td>
    <td>1</td>
    <td>1</td>
    <td>2</td>
    <td>2</td>
    <td>1</td>
    <td>1</td>
    <td>2</td>
  </tr>
</table>
<table>
  <tr>
    <td>2</td>
    <td>1</td>
    <td>1</td>
    <td>2</td>
    <td>2</td>
    <td>1</td>
    <td>1</td>
  </tr>
</table>

代替表格只是依靠其他东西

body {
  background-color: aliceblue;
}
.container {
  font-size:0; /* remove white space */
  white-space:nowrap; /* Keep one line */
}
p {
  border-radius: 5px;
  background-color: cadetblue;
  font-size: 64px;
  width: 90px;
  text-align:center;
  color: white;
  height: 90px;
  line-height:90px; /*vertical align */
  display:inline-block;
  font-family: helvetica;
}
<div class="container">
<p>0</p>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
<p>7</p>
<p>8</p>
<p>9</p>
<p>10</p>
<p>11</p>
<p>12</p>
<p>13</p>
<p>14</p>
<p>15</p>
<p>&nbsp;</p>
</div>