我正在学习Bootstrap,我想从sratch制作一个主题,但现在在入门点我遇到了一个奇怪的问题-图标粘在页面右侧的徽标上,但是float:left
与!important
声明必须将它们向左对齐,而它却没有这样做!
这是怎么回事?我如何正确地将图标对齐到左侧,将徽标对齐到右侧?
* {
font-family: aviny;
font-size: 22px;
text-align: right;
direction: rtl;
}
.top-header {
margin-top: 20px;
}
.instagram-icon img {
float: left !important;
/* does not stick the icons to left side!!! */
}
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
</head>
<body>
<div class="container top-header">
<div class="row">
<img src="https://via.placeholder.com/80" alt="logo header" width="80">
<div class="instagram-icon">
<img src="https://via.placeholder.com/50" alt="instagram">
<img src="https://via.placeholder.com/50" alt="telegram">
<img src="https://via.placeholder.com/50" alt="youtube">
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
</body>
2条答案
按热度按时间yxyvkwin1#
引导行是flex元素,所以
justify-content-between
flex布局类将两个flex子元素分布到两侧。不要使用浮动。它们是一种过时的布局技术,在2023年几乎没有合法的用途。
也可以考虑使用Bootstrap的margin类,而不是自己编写CSS。
mt-3
类可以获得两倍的默认间距单位(2 x 0.5rem = 1.0rem),接近20px。nwnhqdif2#
我找到了一个解决方案:
1.在容器div中,我添加了一个
row
div。1.在
row
内部创建了一个d-flex justify-content-between
。1.第一个元素(带有徽标的img)将被放置在右侧,第二个元素(带有Instagram徽标的div等)将被放置在左侧,无需使用您的
instagram-icon
。这就是代码:
在css上,总是尽量避免使用
!important
,不要使用float
,总是尽量使用flex
或grid
来定位东西。这是我使用的Stackblitz:https://stackblitz.com/edit/web-platform-tqdq6r?file=index.html