html - CSS float 和标记顺序 - 我可以鱼和熊掌兼得吗?

标签 html css layout css-float

我正在创建一个响应式电子商务网站,并且正在设计一个用于将商品添加到购物篮的模式对话框。我希望我的标记按以下顺序排列:

<div class="modal">
    <div class="item"><!-- Product info --></div>
    <div class="quantity-discounts"><!-- Details of quantity discounts --></div>
    <div class="add-to-basket">
        <select name="quantity">
            <option value="1">1</option>
            <option value="2">2</option>
            <!-- ...and so on -->
        </select>
        <a href="#" class="button">Add to basket</a>
    </div>
</div>

在大屏幕上,我希望 .item.quantity-discounts div 位于左侧,然后是 .add-to-basket 部分向右浮动。

我想保持 div 的顺序,因为在小屏幕上它们不会并排 float ,它们会按照它们在标记中出现的顺序堆叠,这正是我想要的。

问题

由于我不完全理解 .add-to-basket div float 到右侧,但仅在 .item div 之后 float ,因此留下了一个间隙其上方 .item div 的高度。让它按照我想要的方式呈现的唯一方法是将 .add-to-basket div 按 div 的顺序放在第二位,但是当它们堆叠在小屏幕上时,数量折扣将显示在下面添加到购物篮按钮这不是我想要的。

我已经做了一个精简版本作为 jsfiddle http://jsfiddle.net/2g9TA/1/

CSS

CSS方面,我将.item.quantity-discounts float 到左侧,并将它们的宽度设置为66%,右边距为2%。然后,我将 .add-to-basket 向右浮动,并将其宽度设置为 30%。

我尝试过的

我尝试向 .add-to-basket 添加负边距,但由于该网站响应灵敏且流畅,因此无论我将其设置为百分比还是像素,此边距都会相对于其他所有内容发生变化。

我现在没有主意了。

最佳答案

您应该在 .container 中添加 position:relative; 并添加 position:absolute; #div3 中的 right:0px; 并删除 float:right;。它会给你你需要的东西。

DEMO

关于html - CSS float 和标记顺序 - 我可以鱼和熊掌兼得吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13859246/

相关文章:

html - CSS:底部菜单项

html - 为什么有时会显示为正方形?

css - 使用 CSS 无限循环动画图像

c++ - Qt 布局以自身为中心

jquery - 当 slideDown()/slideUp() 发生时,你能拉伸(stretch)背景高度吗

html - 如何添加独立于其他单元格的表格单元格?

html - 如何在没有JS的情况下将 "number-parent"类div的高度设置为等于 "active-lg"类div

css - IE 不设置 HTML5 标签的样式(使用 shiv)

android - 如何在布局中显示 firebase 通知消息

layout - 带有 <div> 的 HTML 表格布局?