html - 图像自行居中

标签 html css

我遇到了我以前从未见过的问题,我找不到任何关于如何修复它的信息,我已经搜索了两天。

我有一个 wrapper 。在包装器中,有三个 div(new_initiatives、 Logo 和选项)和一个在下面(btns),包装器结束。粘性页脚位于包装器下方,并为页脚中的列表项使用 flex。

在 btns div 中,我有十二个按钮,我想分两行显示,我希望这些按钮展开以占用可用空间。没问题,我以前做过。但是,这些按钮的作用就像我在页面上将一个 div 居中一样。当我在按钮的右侧添加边距或填充时,它会将一个按钮向下移动到另一行。

我没有将 div 居中,因为它是包装 div 的 100%。唯一居中的 div 是 Logo 。我只是打算使用边距来分隔按钮。我什至尝试使用一张 table ,它做了同样的事情。

CSS 中可能有一些内容,但我现在找不到。我正在发布我的 CSS,但我必须清理 HTML 才能发布它。让我知道我是否应该这样做。也让我知道我错过了什么,包括。

Screen Shot

html,
body {
  height: 100%;
  margin: 0;
}

p,
td,
li,
div {
  font: .95em/1.25em verdana, "sans serif";
}

h1 {
  font: bold small-caps 1.5em verdana, "sans serif";
  padding: .05em 0 .25em 0;
  color: #1349B3;
}

h2 {
  font: bold small-caps 1em verdana, "sans serif";
  padding: .05em 0 .25em 0;
  color: #1349B3;
}

#wrapper {
  width: 95%;
  margin: auto;
  min-height: 100%;
}

body>#wrapper {
  height: auto;
  min-height: 100%;
}

.footer {
  height: 160px;
  width: 95%;
  margin-top: -160px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  background-color: #fff;
  border-top: 2px solid red;
}

#initiatives {
  width: 23%;
  position: relative;
  top: 30px;
  left: 2px;
  float: left;
  padding: 10px;
  height: 410px;
  overflow-y: scroll;
  background-color: #FFFB41;
}

#logo {
  position: absolute;
  top: 30px;
  left: 0;
  right: 0;
  margin: auto;
  width: 45%;
  height: auto;
}

#option {
  width: 23%;
  position: relative;
  float: right;
  top: 30px;
  right: 2px;
  padding: 10px;
  height: 410px;
  overflow-y: scroll;
  background-color: #B3DEFF;
}

.logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#btns {
  width: 100%;
  position: relative;
  top: 475px;
  height: 300px;
  padding-top: 10px;
}


/*#btns img {
margin-right: 50px;
}*/

.footer ul {
  display: flex;
  list-style: none;
  flex-direction: column;
  flex-wrap: wrap;
  height: 100px;
  width: 600px;
  margin: 10px auto;
  align-items: center;
}

.footer ul li {
  flex-basis: 25%;
  margin: 0 0 5px 0;
}

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="toolbox.css">
<title>Title</title>
</head>
<body>
<div id="wrapper">


<div id="initiatives">
<h1>New initiatives</h1>
</div>

<div id="logo">
<img class="logo" src="images/elect_eng_toolbox.png" />
</div>

<div id="option">
<h1>Options</h1>
</div>

<div id="btns">

<div style="width: 100%; margin: 5px auto;">
<img src="images/btn_blank.png" />
<img src="images/btn_blank.png" />
<img src="images/btn_blank.png" />
<img src="images/btn_blank.png" />
<img src="images/btn_blank.png" />
<img src="images/btn_blank.png" />
</div>

<div style="width: 100%; margin: 5px auto;">
<img src="images/btn_blank.png" />
<img src="images/btn_blank.png" />
<img src="images/btn_blank.png" />
<img src="images/btn_blank.png" />
<img src="images/btn_blank.png" />
<img src="images/btn_blank.png" />
</div>

</div>


</div>

<div class="footer">

<ul>
<li>List Item</li>
<li>List Item</li>
<li>List Item</li>
<li>List Item</li>
<li>List Item</li>
<li>List Item</li>
<li>List Item</li>
<li>List Item</li>
<li>List Item</li>

</ul>

&copy Copyright 2017 Southern Company
</div>

</body>
</html>

谢谢。

最佳答案

您需要通过将 clear:both 添加到您的 #btns css 或创建一个带有 style="clear:both"的空 div 在您的 #option 下方但仍在您的 #btns 之上来清除 float 。

清除 float 解释起来很复杂,但这里有一个链接 https://css-tricks.com/the-how-and-why-of-clearing-floats/

关于html - 图像自行居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47210671/

相关文章:

html - CSS:图形居中,然后向右继续一个模式

php - 具有相同 html 的两个页面呈现不同的效果

javascript - jquery .closest() 在尝试访问最近的上层 div 时选择自身

javascript - 将文本附加到 slider 文本 (display_selector)

css - 将字形图标与文本一起使用时如何避免额外的空间?

html - 如何在 CSS Grid 布局中创建第 n 行?

css - 语义用户界面 : how to cut down the Item's height

html - CSS3 在悬停另一个元素时显示一个分区

jquery - 如何更改 :-moz-placeholder color with jQuery once it's set?

python - BeautifulSoup 有多个标签,每个标签有一个特定的类