如何让两个div保持在同一行?

问题描述 投票:0回答:6

我一直在研究类似于 Suckerfish 的下拉菜单。我现在已经可以使用下拉菜单了,但是我想将一些图像放在链接的两侧。现在我正在使用图像大小的 div,然后将

background-image
属性设置为我需要的图像(以便可以使用伪 :hover 类进行更改)。

这里是适用的 CSS:

ul#menu3 li {
    color: #000000;
    float: left;
    /*I've done a little playing around here, doesn't seem to do anything*/
    position: relative;
    /*margin-bottom:-1px;*/
    
    line-height: 31px;
    width: 10em;
    padding: none;
    font-weight: bold;
    display: block;
    vertical-align: middle;
    background-image: url(../../images/dropdown/button-tile.gif);
}
.imgDivRt {
    width: 20px;
    height: 31px;
    display: inline;
    float: right;
    vertical-align: middle;
    background-image: url(../../images/dropdown/button-right.gif);
}
.imgDivLt {
    width: 20px;
    height: 31px;
    display: inline;
    float: left;
    vertical-align: middle;
    background-image: url(../../images/dropdown/button-left.gif);
}    

我使用选择器来节省一些不同类的费用,但 Internet Explorer 似乎不支持它们:(

这是我适用的 HTML:

<li><div class="imgDivLt"></div>Option 1<div class="imgDivRt"></div>
<ul>
    <li><a href="#"><div class="imgDivLt"></div>Sub 1<div class="imgDivRt"></div></a>
        <ul>
            <li><a href="#"><div class="imgDivLt"></div>Sandwich<div class="imgDivRt"></div></a></li>
            <li><a href="#"><div class="imgDivLt"></div>Sandwich<div class="imgDivRt"></div></a></li>
            <li><a href="#"><div class="imgDivLt"></div>Sandwich<div class="imgDivRt"></div></a></li>
            <li><a href="#"><div class="imgDivLt"></div>Sandwich<div class="imgDivRt"></div></a></li>
            <li><a href="#"><div class="imgDivLt"></div>Sandwich<div class="imgDivRt"></div></a></li>
            <li><a href="#"><div class="imgDivLt"></div>Sandwich<div class="imgDivRt"></div></a></li>
        </ul>
    </li>
    <li><a href="#"><div class="imgDivLt"></div>Sub 2<div class="imgDivRt"></div></a> 
    <ul>
            <li><a href="#"><div class="imgDivLt"></div>Sub 1<div class="imgDivRt"></div></a></li>
            <li><a href="#"><div class="imgDivLt"></div>Sub 2<div class="imgDivRt"></div></a> </li>
            <li><a href="#"><div class="imgDivLt"></div>Sub 3<div class="imgDivRt"></div></a></li>
            <li><a href="#"><div class="imgDivLt"></div>Sub 4<div class="imgDivRt"></div></a></li>
            <li><a href="#"><div class="imgDivLt"></div>Sub 5<div class="imgDivRt"></div></a></li>
            <li><a href="#"><div class="imgDivLt"></div>Sub 6<div class="imgDivRt"></div></a></li>
        </ul>
    </li>
    <li><a href="#"><div class="imgDivLt"></div>Sub 3<div class="imgDivRt"></div></a></li>
    <li><a href="#"><div class="imgDivLt"></div>Sub 4<div class="imgDivRt"></div></a></li>
    <li><a href="#"><div class="imgDivLt"></div>Sub 5<div class="imgDivRt"></div></a></li>
    <li><a href="#"><div class="imgDivLt"></div>Sub 6<div class="imgDivRt"></div></a></li>
</ul>
</li>
<li><div class="imgDivLt"></div>Option 2<div class="imgDivRt"></div>

我不确定我的代码是否有问题,或者我是否走错了路。它可以在 Firefox、Safari 和 Chrome 中运行,但不能在 IE 或 Opera 中运行,所以我不确定它们是在弥补愚蠢还是什么。理想情况下,第二个图像在包含块中贪婪地向右浮动。在有问题的浏览器中,它位于下一行(至少在最右边)。

css internet-explorer opera css-float
6个回答
66
投票

您可以通过这种方式使两个 div 内联:

display:inline;
float:left;

14
投票

对我来说,这效果更好,因为它没有消除浮动项目之间的间距:

display:inline-block;

以防对其他人有帮助。


6
投票

简单地在两个

display: inline-block
上执行
div
,但请务必同时设置
min-width
max-width
。下面的例子:

div {
  max-width: 200px;
  min-width:200px;
  background:grey;
  display:inline-block;
  vertical-align: top;
}
<div>
  <p>test</p>
  <p>test</p>
  <p>test</p>
  <p>test</p>
  <p>test</p>
  <p>test</p>
</div>

<div>
  <p>test 2</p>
  <p>test 2</p>
  <p>test 2</p>
</div>


4
投票

将其添加到容器 div

.container_class {
    display: flex;
    justify-content: center;
}

2
投票

如果您想在单个延续中制作多个 div,则只需将以下代码行添加到您的 css 文件中,其中包含每个 div、div 类等。

display: inline-block;

0
投票

对于像shopify、weebly这样无法轻松调整CSS文件的网站构建器,此方法也非常适合将两个div调整到同一行。只是想将这个特定的答案也提供给其他也在搜索网站构建器解决方案的人。

display:inline;
float:left;

所有功劳都归功于最初发现上述解决方案的 J D。

© www.soinside.com 2019 - 2024. All rights reserved.