【问题标题】:prevent bootstrap table being wider than span防止引导表比跨度更宽
【发布时间】:2013-05-21 02:21:58
【问题描述】:

以下是通常动态生成的内容。在页面的主要部分有一个 <div class="span6"> 。有时这个 div 中的表格变得比 div 本身更宽(我检查了 css,宽度设置为 100%)。如果我只将短文本放入表格中,或者如果我使 div 更宽,一切都很好。 问题是:

  1. 为什么表格可以比div class=spanX 更宽?我一直在想,块元素会占用其父元素的宽度?
  2. 表格的各个td 中的字符/空格数可能会有所不同。如何防止表格变得比 div 更宽?当然,我可以动态检查 ts 中的字符数,但我该如何处理这些信息?

http://jsfiddle.net/vNnc6/

HTML:

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>MySite</title>
<meta name="author" content="me"/>

<link href="static/css/bootstrap.css" rel="stylesheet">
<link href="static/css/bootstrap-responsive.css" rel="stylesheet">
<link href="static/profhase.css" rel="stylesheet">

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="static/bootstrap/js/bootstrap.js"></script>


<body>
  <div class="navbar navbar-inverse navbar-fixed-top">
    <div class="navbar-inner">
      <div class="container">
    <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
    </a>

    <ul class="nav">
      <li><a class="brand" href="profhase">MyBrand</a></li>
      <li><a href="#">Home</a></li>
      <li><a href="#about">About</a></li>
      <li><a href="#contact">Blog</a></li>
    </ul>

      <div class="nav pull-right collapse nav-collapse" style="hight: 0px">
        <ul class="nav collapse nav-collapse">
          <li><p class="navbar-text">Apps: </p></li>
          <li><a href="firstapp/">AppOne <i class="icon-lock"></i></a></li>
        </ul>
      </div>
      </div>
    </div>
  </div>

  <div class="container-fluid">
    <div class="row">
      <div class="span2">
    <p>
      My Wonderful sidebar
    </p>
      </div>
      <div class="span6" style="background:red;">
    <table class="table">
      <tbody>
        <tr>
          <th>Header1</th>
          <th>Header2</th>
          <th>Header3</th>
          <th>Header4</th>
          <th>Header5</th>
          <th>Header6</th>
        </tr>

        <tr>
          <td>My first Test</td>
          <td>My second Test</td>
          <td>My third Test</td>
          <td>My fifth Test</td>
          <td>My lalalalalong long lelong long long Test</td>

          <td>
        <div class="btn-group">
          <a class="btn dropdown-toggle" data-toggle="dropdown">
            Dropdown Choices <span class="caret"></span>
          </a>

          <ul class="dropdown-menu">
            <li><a id=1>First wonderful choice</a></li>
          </ul>

        </div>
          </td>
        </tr>
      </tbody>
    </table>
      </div>
    </div>
  </div>

</body>

【问题讨论】:

    标签: html css twitter-bootstrap


    【解决方案1】:

    感谢 FelipeAls 的回答,这段代码做到了:

    table {
        table-layout: fixed;
        word-wrap: break-word;
    }
    

    另一种可能性是不使用自动换行,而是使用类似的东西 ...

    http://jsfiddle.net/zzmfA/

    【讨论】:

      【解决方案2】:
      1. 我注意到span6 的父级显示为table,但span6 是浮动的。删除浮动并将span* 设置为display: table-cell 有效:fiddle
        注意:TB中可能有比span*更合适的类,一个已经有display: table-cell的类。

      2. 其他解决方案,但可能不是您想要实现的:“带有overflow: hidden; 和浮动元素的元素”的技术Working fiddle
        这个魔法的解释被命名为block formatting context (T. J. Koblentz' blog) - question on SO

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-27
        • 2023-03-09
        • 2013-07-05
        • 2014-02-12
        • 1970-01-01
        • 1970-01-01
        • 2015-10-04
        • 2013-11-06
        相关资源
        最近更新 更多