ano*_*ran 5 html css flexbox responsive-design twitter-bootstrap
我想使用CSS Flexbox创建这样的东西:
我通常使用浮点数和大量定位调整来实现这一点,在元素的顶部,底部,左侧和右侧添加边距,填充,百分比值以将其调整到某个视口,但它似乎在不同的视口中断开.
我知道这不是正确的方法,我最终写了太多的CSS,但在不同的视口上看起来仍然不一致.
将徽标完美地放在中心并垂直对齐是我在苦苦挣扎的地方.
这是HTML代码.
<nav class="navbar">
<div class="sidebar-toggle">
<button class="sidebar-toggler" type="button">?</button>
</div>
<div class="headerLogo">
<a href="" class="logo">Logo</a>
</div>
<div class="headerLinks">
<a href="">link1</a>
<a href="">link2</a>
</div>
<div class="notifications">
<div class="mailIcon"></div>
</div>
</nav>
Run Code Online (Sandbox Code Playgroud)
您只需使用justify-content: space-between并获得正确的间距和align-items: center垂直对齐即可。
.navbar,\r\n.links {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n}Run Code Online (Sandbox Code Playgroud)\r\n<nav class="navbar">\r\n <div class="sidebar-toggle">\r\n <button class="sidebar-toggler" type="button">\xe2\x98\xb0</button>\r\n </div>\r\n <div class="headerLogo">\r\n <a href="" class="logo">Logo</a>\r\n </div>\r\n <div class="links">\r\n <div class="headerLinks">\r\n <a href="">link1</a>\r\n <a href="">link2</a>\r\n </div>\r\n <div class="notifications">\r\n <div class="mailIcon">Mail</div>\r\n </div>\r\n </div>\r\n</nav>Run Code Online (Sandbox Code Playgroud)\r\n如果您希望徽标完美居中,那么您需要将其从元素流中删除position: absolute;
.navbar,\r\n.links {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n position: relative;\r\n}\r\n.headerLogo {\r\n position: absolute;\r\n left: 50%;\r\n top: 50%;\r\n transform: translate(-50%, -50%);\r\n}Run Code Online (Sandbox Code Playgroud)\r\n<nav class="navbar">\r\n <div class="sidebar-toggle">\r\n <button class="sidebar-toggler" type="button">\xe2\x98\xb0</button>\r\n </div>\r\n <div class="headerLogo">\r\n <a href="" class="logo">Logo</a>\r\n </div>\r\n <div class="links">\r\n <div class="headerLinks">\r\n <a href="">link1</a>\r\n <a href="">link2</a>\r\n </div>\r\n <div class="notifications">\r\n <div class="mailIcon">Mail</div>\r\n </div>\r\n </div>\r\n</nav>Run Code Online (Sandbox Code Playgroud)\r\n