繁体   English   中英

如何在 div 的两侧具有相等的填充。 CSS

[英]How to have equal padding on both side of a div. CSS

我有这个元素:

<div class="menubar">
    <a href="http://home.com"><img src="../img/home_button.png"/></a>
    <a href="http://home.com/a"><img src="../img/a_button.png"/></a>
    <a href="http://home.com/b"><img src="../img/b_button.png"/></a>
    <a href="http://home.com/c"><img src="../img/c_button.png"/></a>
</div>

我的目标是让菜单栏 div 的内容居中。

使用display: table; margin:auto; 实现了这一点,但我使用的背景图像被裁剪为仅适合 div 的内容:

.menubar {
    display: table;
    margin: auto;
    background-image:url(/img/menubar_background.png);
}

那么,我有另一个版本,它向两侧添加了 50% 的填充,但问题是结果的总宽度是 100% + 按钮的宽度。

.menubar {
    padding-right:50%;
    padding-left:50%;
    background-image:url(/img/menubar_background.png);
}

我通过使用max-width:960px (100%) 实现了更接近的效果,但仍然存在一个问题:它实际上并未对两侧应用相同数量的填充。 它最终向左填充 50%,剩下的填充到右侧的 960px。

欢迎任何帮助!

改用文本对齐。

.menubar {
  text-align:center;
  background-image:url(/img/menubar_background.png);
}

如果您知道元素的宽度,您可以使用calc

 .menubar { --menu-width: 112px; width: var(--menu-width); padding-left: calc((100% - var(--menu-width)) / 2); padding-right: calc((100% - var(--menu-width)) / 2); color: #4fff09; background: gray; }
 <div class="menubar"> menu bar content </div>

为什么我需要将两者的 padding 设置为 15.5px<div> 有相同的高度?</div><div id="text_translate"><h2> 代码</h2><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-css lang-css prettyprint-override"> .topnav { width: 50%; display: inline-block; background-color: black; overflow: hidden; }.topnav a { box-sizing: border-box; color: white; display: inline-block; padding: 16px; text-decoration: none; font-size: 17px; margin: 6px; }.topnav a:hover { background-color: blue; color: white; }.topnav a.active { background-color: blue; color: white; }.searchbar { width: 50%; float: right; display: inline-block; background-color: black; overflow: hidden; }.searchbar input[type=text] { float: right; width: 80%; box-sizing: border-box; color: black; display: inline-block; padding: 15.5px; outline: none; margin: 6px; border: 3px solid transparent; transition: 0.1s; }.searchbar input[type=text]:hover { border: 3px solid blue; }</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;!DOCTYPE&gt; &lt;html&gt; &lt;head&gt; &lt;/head&gt; &lt;body&gt; &lt;div class='topnav'&gt; &lt;a href='#abcdefg'&gt;abcdefg&lt;/a&gt; &lt;/div&gt; &lt;div class='searchbar'&gt; &lt;form&gt; &lt;input type='text' placeholder='Search here'&gt; &lt;/form&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt;</pre></div></div><p></p><p> 正如标题所示,为了使&lt;div class = 'topnav'&gt;和&lt;div class = 'searchbar'&gt;具有相同的高度,我可以将&lt;div class = 'searchbar'&gt; searchbar'&gt; paddingbar 设置为 'searchbar'&gt;。</p><pre> padding: 15.5px;</pre><p> 因此,我很难理解为什么。 也就是说,我设法通过猜测正确的填充使两个&lt;div&gt;高度相同,而不是我想做的事情。 因此,<strong>我要求一种系统的方法来了解我需要多少填充</strong>。</p></div>

[英]Why do I need to set padding to 15.5px for both <div> to have equal height?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 为什么我需要将两者的 padding 设置为 15.5px<div> 有相同的高度?</div><div id="text_translate"><h2> 代码</h2><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-css lang-css prettyprint-override"> .topnav { width: 50%; display: inline-block; background-color: black; overflow: hidden; }.topnav a { box-sizing: border-box; color: white; display: inline-block; padding: 16px; text-decoration: none; font-size: 17px; margin: 6px; }.topnav a:hover { background-color: blue; color: white; }.topnav a.active { background-color: blue; color: white; }.searchbar { width: 50%; float: right; display: inline-block; background-color: black; overflow: hidden; }.searchbar input[type=text] { float: right; width: 80%; box-sizing: border-box; color: black; display: inline-block; padding: 15.5px; outline: none; margin: 6px; border: 3px solid transparent; transition: 0.1s; }.searchbar input[type=text]:hover { border: 3px solid blue; }</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;!DOCTYPE&gt; &lt;html&gt; &lt;head&gt; &lt;/head&gt; &lt;body&gt; &lt;div class='topnav'&gt; &lt;a href='#abcdefg'&gt;abcdefg&lt;/a&gt; &lt;/div&gt; &lt;div class='searchbar'&gt; &lt;form&gt; &lt;input type='text' placeholder='Search here'&gt; &lt;/form&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt;</pre></div></div><p></p><p> 正如标题所示,为了使&lt;div class = 'topnav'&gt;和&lt;div class = 'searchbar'&gt;具有相同的高度,我可以将&lt;div class = 'searchbar'&gt; searchbar'&gt; paddingbar 设置为 'searchbar'&gt;。</p><pre> padding: 15.5px;</pre><p> 因此,我很难理解为什么。 也就是说,我设法通过猜测正确的填充使两个&lt;div&gt;高度相同,而不是我想做的事情。 因此,<strong>我要求一种系统的方法来了解我需要多少填充</strong>。</p></div> CSS将div分为四个相等的部分 我在div里面有一个画布。 我怎么得到它? CSS的div位于左div下方的右侧。 Divs在HTML中是相反的 如何使固定宽度div在页面的两侧都有相同的隐藏溢出 单击文本以启用下拉列表,而不是div。 -CSS div 中两个图像右侧无法解释的空白。 如何去除 css:图像位于父级div的边界上。 如何在div中创建该图像上方的文本? 如何将2 div并排添加到2 div到1 div? CSS - 使子 div 具有与父 div 相同的填充
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM