Div在一条线上

dem*_*mas 8 css

这是我的代码:

<style type="text/css">
    div.page {
      text-align:center;
      border: 1px solid rgb(0,0,0);
      width:20px;
      height:20px;              
    }

    span.page {
      text-align:center;
      border: 1px solid rgb(0,0,0);
      width:20px;
      height:20px;              
    }
 </style>


<div class="page">1</div>
<div class="page">2</div>
<div class="page">3</div>

<span class="page">1</span>
<span class="page">2</span>
<span class="page">3</span>
Run Code Online (Sandbox Code Playgroud)

Div看起来很好但是它们垂直放置.有没有办法将它们水平放置在一条线上?

跨度在一行中的位置,但跨度不能具有任何内联元素的宽度.如果没有办法使用DIV和SPAN来完成我的任务,我将使用一个表,但我正在寻找无表解决方案.

Jan*_*Jan 11

xandy是正确的,但这更好:

<div class='pageHolder'>
    <div class='page'>1</div>
    <div class='page'>2</div>
    <div class='page'>3</div>
</div>
Run Code Online (Sandbox Code Playgroud)

用CSS:

.page {
  text-align:center;
  border: 1px solid rgb(0,0,0);
  width:20px;
  height:20px;              
  float: left;
}

.pageHolder{
  overflow: auto;
  width: 100%;
}
Run Code Online (Sandbox Code Playgroud)

清除浮动的元素是标记.这就像使用<br>浮子一样.混合标记和内容在语义Web中被认为是不好的做法.

阅读本文以获取更多信息.


Sam*_*uel 6

使用

display:inline-block
Run Code Online (Sandbox Code Playgroud)

在 div 的风格中


xan*_*ndy 4

洛伦佐的答案是正确的,但我会在标记中添加一些内容:

<div class='pageHolder'>
    <div class='page'>1</div>
    <div class='page'>2</div>
    <div class='page'>3</div>
    <div class='pageHolder-footer'></div>
</div>
Run Code Online (Sandbox Code Playgroud)

在 CSS 中添加:

div.pageHolder-footer{
    clear: left;
    height: 0;
}
Run Code Online (Sandbox Code Playgroud)

这样你的其余部分就会正确流动。

==替代方法(来自Jan和SitePoint)==

不需要 div.pageHolder-footer (但保留 pageHolder)。进而:

div.pageHolder { overflow: auto; } /* Jans' method */
/* or */
div.pageHolder { overflow: hidden; } /* From SitePoint */
Run Code Online (Sandbox Code Playgroud)

它们都可能有缺点,但这取决于您的需要。