【问题标题】:How to create a scrollable Div Tag Vertically?如何垂直创建可滚动的 Div 标签?
【发布时间】:2011-01-18 17:46:54
【问题描述】:

我想创建一个具有固定高度的可滚动 div 标签,该标签获得垂直滚动条。我正试图让它在 chrome 中工作。

这是我的 CSS:

#designDiv
{
    width:249px;
    height:299px;
    background-color:Gray;
    overflow-y: scroll;
    max-width:230px;
    max-height:100px;
}

它确实显示了垂直滚动条,但问题是在运行时用户将一些内容添加到#designDiv。它不会滚动并且#designDiv 开始垂直扩展。

如何为chrome垂直创建可滚动的div标签?

【问题讨论】:

    标签: css html overflow vertical-scrolling


    【解决方案1】:

    好吧,您的代码对我有用(在 Ubuntu 9.10 上运行 Chrome 5.0.307.9 和 Firefox 3.5.8),但我切换了

    overflow-y: scroll;
    

    overflow-y: auto;
    

    演示页面位于:http://davidrhysthomas.co.uk/so/tableDiv.html

    下面的xhtml:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    
    <head>
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
        <title>Div in table</title>
        <link rel="stylesheet" type="text/css" href="css/stylesheet.css" />
    
            <style type="text/css" media="all">
    
            th      {border-bottom: 2px solid #ccc; }
    
            th,td       {padding: 0.5em 1em; 
                    margin: 0;
                    border-collapse: collapse;
                    }
    
            tr td:first-child
                    {border-right: 2px solid #ccc; } 
    
            td > div    {width: 249px;
                    height: 299px;
                    background-color:Gray;
                    overflow-y: auto;
                    max-width:230px;
                    max-height:100px;
                    }
            </style>
    
        <script type="text/javascript" src="js/jquery.js"></script>
    
        <script type="text/javascript">
    
        </script>
    
    </head>
    
    <body>
    
    <div>
    
        <table>
    
            <thead>
                <tr><th>This is column one</th><th>This is column two</th><th>This is column three</th>
            </thead>
    
    
    
            <tbody>
                <tr><td>This is row one</td><td>data point 2.1</td><td>data point 3.1</td>
                <tr><td>This is row two</td><td>data point 2.2</td><td>data point 3.2</td>
                <tr><td>This is row three</td><td>data point 2.3</td><td>data point 3.3</td>
                <tr><td>This is row four</td><td><div><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ultricies mattis dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum a accumsan purus. Vivamus semper tempus nisi et convallis. Aliquam pretium rutrum lacus sed auctor. Phasellus viverra elit vel neque lacinia ut dictum mauris aliquet. Etiam elementum iaculis lectus, laoreet tempor ligula aliquet non. Mauris ornare adipiscing feugiat. Vivamus condimentum luctus tortor venenatis fermentum. Maecenas eu risus nec leo vehicula mattis. In nisi nibh, fermentum vitae tincidunt non, mattis eu metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nunc vel est purus. Ut accumsan, elit non lacinia porta, nibh magna pretium ligula, sed iaculis metus tortor aliquam urna. Duis commodo tincidunt aliquam. Maecenas in augue ut ligula sodales elementum quis vitae risus. Vivamus mollis blandit magna, eu fringilla velit auctor sed.</p></div></td><td>data point 3.4</td>
                <tr><td>This is row five</td><td>data point 2.5</td><td>data point 3.5</td>
                <tr><td>This is row six</td><td>data point 2.6</td><td>data point 3.6</td>
                <tr><td>This is row seven</td><td>data point 2.7</td><td>data point 3.7</td>
            </body>
    
    
    
        </table>
    
    </div>
    
    </body>
    
    </html>
    

    【讨论】:

      【解决方案2】:

      这段代码在 FirefoxChrome 中为我创建了一个不错的垂直滚动条

      #answerform {
        position: absolute;
        border: 5px solid gray;
        padding: 5px;
        background: white;
        width: 300px;
        height: 400px;
        overflow-y: scroll;
      }
      <div id='answerform'>
        badger<br><br>badger<br><br>badger<br><br>badger<br><br>badger<br><br> mushroom
        <br><br>mushroom<br><br> a badger<br><br>badger<br><br>badger<br><br>badger<br><br>badger<br><br>
      </div>

      这是一个JS fiddle demo 证明上述工作。

      【讨论】:

        【解决方案3】:

        在设置 overflow-y 之前添加 overflow:auto 似乎可以在 Google Chrome 中解决问题。

        {
            width:249px;
            height:299px;
            background-color:Gray;
            overflow: auto;
            overflow-y: scroll;
            max-width:230px;
            max-height:100px;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-06-29
          • 2014-08-16
          • 1970-01-01
          • 1970-01-01
          • 2012-03-31
          • 2013-09-27
          • 1970-01-01
          相关资源
          最近更新 更多