html - 使用 float 时, margin 会被忽略

标签 html css e-commerce

我正在尝试为我的网站创建一个导航栏。在购物车选项旁边,我想合并一个购物车图像。我正在尝试使用 float:right;和 margin 能够定位这个元素。由于某种原因,边距被忽略并且不起作用。我已经查看了关于该主题的无数问题,但没有一个答案与我的问题相关。任何帮助是极大的赞赏。再一次,我知道他们有很多关于我的问题的问题,但没有一个能解决问题。我也尝试过填充,但这也没有用。在此先感谢您的帮助。非常感谢。下面是我的代码:

.cart {
  clear: both;
  margin-left: 975px;
  margin-top: -25px;
  float: right;
  display: block;
  overflow: auto;
}
<body>
  <nav>
    <ul>
      <li><a href="#">Categories</a></li>
      <li><a href="#">Sale</a></li>
      <li><a href="#">Contact</a></li>
      <li><a href="#">Login/Sign Up</a></li>
      <li><a href="#">Cart</a></li>
    </ul>

  </nav>

  <img src="shoppingcart.png" class="cart" height=25 width=25>

</body>

最佳答案

当您使用 float:right 时,逻辑上使用 margin-right 属性是因为 float:right 会将元素推到最右边,如果你想在元素和最右边的边界之间设置一些边距,你必须使用 margin-right

相反的方法是行不通的,因为您将元素设置为向右浮动,但同时您设置了它的左边距,这将被 float 属性覆盖。

此外,设置左边距是一种硬编码解决方案,即您不知道不同屏幕尺寸需要多大的边距。但是,您很可能知道右侧的边距应该有多大。

请看下面的代码片段。

.cart {
  clear: both;
  margin-top: -25px;
  margin-right: 50px;
  float: right;
  display: block;
  overflow: auto;
}
 <nav>
  <ul>
    <li><a href="#">Categories</a></li>
    <li><a href="#">Sale</a></li>
    <li><a href="#">Contact</a></li>
    <li><a href="#">Login/Sign Up</a></li>
    <li><a href="#">Cart</a></li>
  </ul>

  </nav>

  <img src="https://d30y9cdsu7xlg0.cloudfront.net/png/28468-200.png" class="cart" height=25 width=25>

关于html - 使用 float 时, margin 会被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44329370/

相关文章:

html - 如何在免费标记模板中包含 CSS 文件

html - html lang 属性在文本区域或其他用户可编辑元素上意味着什么?

css - -webkit-transform 如何在保留 translate3d() 的同时更改 rotate()?

html - 在电子商务网站的购物车/结帐页面使用表格或 div/css,请告诉我

ruby-on-rails - Recurly 与 SaaS 套件

javascript - 无法使用 CKEditor 对话框输入 javascript

html - 网站崩溃 Iphone Safari

html - 为什么内联 block 元素的边距会影响同级内联 block 元素

javascript - 以空格分隔的样式字符串

javascript - 如何在reactjs中更改移动设备上的完整布局