【问题标题】:CSS for two columns which float left向左浮动的两列的 CSS
【发布时间】:2016-02-01 00:24:45
【问题描述】:

我想使用 CSS 在列中并排显示两条文本。左列文本的长度是可变的,而右列文本是固定的并且总是相同的长度。

我希望两个“列”彼此相邻浮动到左侧,例如

[Variable Text] [Fixed text]

如果变量文本很长,我希望它换行。 例如,

Here is a very long  Hello World
piece of variable
text which wraps

如果变量文本很短,我的代码可以工作,但如果变量文本换行,我会得到不需要的空格。 例如,

Here is a very long               Hello World
piece of variable
text which wraps

这是我的代码:

#wrapper {
  margin-right: 100px;
}
#left-col {
  float: left;
  max-width: 100%;
  background-color: #CCF;
}
#right-col {
  float: left;
  width: 100px;
  margin-right: -100px;
  background-color: #FFA;
}
#cleared {
  clear: both;
}
<div id="wrapper">
      <div id="left-col">Here is a very long piece of text which wraps</div>
      <div id="right-col">Hello World</div>
      <div id="cleared"></div>
</div>

【问题讨论】:

  • 我不确定我是否理解您的问题。如果你有长文本 #left-col 换行,这没关系,但如果你有短文本,你会得到额外的空间,你想避免吗?
  • 您能解释一下您尝试并排放置的内容(含义/语义)是什么。是脚注吗?
  • 对我来说看起来像是标准文本换行。我认为它被称为“内联盒模型”,您对此无能为力。
  • 谢谢你们到目前为止的cmets...@Tasos K - 不,它与此相反。如果左列换行,我会在两列之间获得额外的空格。
  • 您提供的代码 sn-p 没有您描述的问题。也许是其他原因导致了这个问题?

标签: html css layout css-float two-columns


【解决方案1】:

我相信将 #left-col 的属性 max-width 更改为 100% 以外的值会起作用。例如:

#wrapper {
  margin-right: 100px;
}
#left-col {
  float: left;
  max-width: 200px;
  background-color: #CCF;
}
#right-col {
  float: left;
  width: 100px;
  background-color: #FFA;
}
#cleared {
  clear: both;
}

Here 是一个 jsfiddle,为了清晰起见,它具有各种文本长度。

【讨论】:

    【解决方案2】:

    如果没有classid,您也许可以将您的html 更新为更有意义且更易于样式化的内容。 &lt;dl&gt; 不是最有效的,但会显示易于样式化的替代标签)

    calc() 在这里很有用:)

    #wrapper {
    width:15em;/* demo purpse */
      }
    dl,dt,dd {
      padding:0;
      margin:0;
      
    }
    dt {
      float: left;
      clear:left;
      text-align:justify;/* to fill up entire first lines when text wraps*/
      max-width: calc(100% - 100px);
      background-color: #CCF;
      margin-top:0.1em;
    }
    dd {float:left;
      width: 100px;
      background-color: #FFA;
    }
    <dl id="wrapper">
          <dt>1 Here is a very long piece of text which wraps</dt>
          <dd>Hello World 1</dd>
          <dt>2 Here is a very long piece of text which</dt>
          <dd>Hello World 2</dd>
          <dt>3 Here is a very long piece of text</dt>
          <dd>Hello World 3</dd>
          <dt>4 Here is a very long piece</dt>
          <dd>Hello World 4</dd>
          <dt>5 short</dt>
          <dd>5</dd>
    </dl>

    【讨论】:

    • 也许我可以用不同的方式问这个问题......想象一下你有一个专栏。添加文本后,列将自动增加大小,直到达到最大宽度(例如 200 像素)。任何进一步的文本都会导致自动换行,但即使换行文本的宽度现在变小,列宽仍保持在 200 像素。如何让列缩小?
    • @Bilko123 看起来像是sn-p的第5件,不是吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多