html – 为什么这个CSS nowrap不起作用?

前端之家收集整理的这篇文章主要介绍了html – 为什么这个CSS nowrap不起作用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图保持bar_top_container div包装它的内容,无论页面有多宽(即两个选择应该始终显示在同一行),但是当页面宽度较小时,它们都适合在一行,我该如何解决这个问题?

样式:

#bar_top_container { position: relative; white-space: nowrap; }
#bar_top_block { float: left; padding-left: 10px; padding-right: 10px; border-right: 1px solid #4965BB; }
#clear { clear: both; }

HTML:

<div id="bar_top_container">
 <div id="bar_top_block">
  <span class="bold">select1:  </span>
   <select><option value="asdf">asdf</option></select>
 </div>
 <div id="bar_top_block">
  <span class="bold">asdf: </span>
   <select><option value="blah">-- select action --</option></select>
 </div>
 <div id="clear"></div>
</div>

解决方法

如果将其显示为… inline-block,则可以为元素同时拥有块和内联属性.

这是您的代码更正和工作:

> span.bold是标签
>标签通过for / id属性与其表单元素相关联
> bar_top_block是一个使用两次的ID.应该是上课
>不需要float:left; as display:inline-block;用来
>因此也不需要清算要素
> .bar_top_block元素也显示为内联,所以它们之间的任何空格都将显示为空格.为了避免这种情况,我添加了一个注释,以避免任何空格,尽管仍然允许HTML代码可读.内部的文字是’没有空白’,所以开发者会知道这个评论是有原因的,不应该被剥夺:)
>你可以去掉身体的宽度,这里就是这个例子
>你可以玩容器上的overflow属性
>因为IE7及以下版本不了解div中的块元素的内嵌块值,所以必须使用display:inline并赋予元素hasLayout,例如zoom:1;
>针对IE7及更低版本的最佳方法,只有那些浏览器才具有条件注释
>我添加了对Fx2的支持,但这只是为了历史原因:)

.

<!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" lang="en" xml:lang="en">
<head>
    <Meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title>Stack Overflow 3150509 - Felipe</title>
    <style type="text/css">
body {
    width: 300px;
}

#bar_top_container {
    overflow: auto;
    white-space: nowrap;
    border: 1px solid red;
}

.bar_top_block {
    display: -moz-inline-stack; /* Fx2,if you've to support this ooold browser. You should verify that you can still click in the elements,there is a known bug with Fx2 */
    display: inline-block;
    padding-left: 10px;
    padding-right: 10px;
    border-right: 1px solid #4965BB;
}

    </style>
    <!--[if lte IE 7]><style type="text/css">
.bar_top_block {
    display: inline;
    zoom: 1;
}
    </style> <![endif]-->
</head>
<body>
    <form method="post" action="#" id="bar_top_container">
        <div class="bar_top_block">
            <label for="select1">ObvIoUsly I am a label: </label>
            <select id="select1"><option value="asdf">asdf</option></select>
        </div><!-- no whitespace
        --><div class="bar_top_block">
            <label for="select2">I'm a label too and I need a for attribute: </label>
            <select id="select2"><option value="blah">-- select action --</option></select>
        </div>
    </form>
</body>
</html>

猜你在找的HTML相关文章