向右浮动在 CSS 中不起作用
Float right doesn't work right in CSS
我在 CSS 中创建了一个浮动示例。但是,我对元素之间的顺序和 space 有疑问。这是结果:
灰色点应该在绿色点的右侧,甚至于绿色点。
有什么想法吗?谢谢,
这是我的代码示例:https://jsfiddle.net/dalenguyen/mfj78LL5/
.green-dot {
color: #20b08f;
}
.gray-dot {
color: grey;
}
.professional-skills .green-dot,
.professional-skills .gray-dot {
float: right;
font-size: 1.5rem;
}
<div class="professional-skills">
<h2>Professional Skills</h2>
<p>Web Design <span class="green-dot">● ● ● ● ●</span></p>
<p>Design <span class="green-dot">● ● ●</span><span class="gray-dot">● ●</span></p>
</div>
</div>
您可以更新以下内容:
.professional-skills .green-dot, .professional-skills .gray-dot
{
float: right;
font-size: 1.5rem;
padding-right:5px;
}
它会起作用,但最好将每个圆圈分开 DIV。
当使用 float:right;
时,最远的元素始终是 HTML 代码中之前出现的元素。如果你想让你的灰点与你的绿点对齐,你必须先将它们插入你的 HTML.
此外,如前所述,您可能希望将点拆分到单独的容器中,这样您就可以完全控制间距(而不是在点之间使用空格)。参见 Mhd.Jarkas 的回答。
希望对您有所帮助!
试试这个
.green-dot,.green-dot-1 {
color: #20b08f;
}
.gray-dot,.gray-dot-1 {
color: grey;
}
.professional-skills .green-dot, .professional-skills .gray-dot{
float: right;
font-size: 1.5rem;
}
#dots{
font-size: 1.5rem;
float : right;
}
#abc{
float: left;
}
#clear {
clear: both;
}
.green-dot-1{
padding-right: 5px;
}
<div class="professional-skills">
<h2>Professional Skills</h2>
<p>Web Design <span class="green-dot">● ● ● ● ●</span></p>
<p id="abc">Design </p>
<div id="dots">
<span class="green-dot-1">● ● ●</span><span class="gray-dot-1">● ●</span>
</div>
<div id="clear"></div>
</div>
</div>
CSS float
属性 从未为建筑布局设计。
它是为在图像周围环绕文字而设计的。
因为 CSS 没有提供更好的布局系统,浮动(和表格、内联块和绝对定位)已被用作 hack 解决方法。
但是现在 CSS3 flex and grid modules have wide browser support,并且它们是专门为建筑布局设计的,您应该考虑使用它们。
section {
display: flex;
}
section > * {
margin: 0;
align-self: center; /* 1 */
}
section > p {
margin-right: auto; /* 2 */
}
.green-dot {
color: #20b08f;
font-size: 1.5rem;
}
.gray-dot {
color: grey;
font-size: 1.5rem;
}
<article class="professional-skills">
<h2>Professional Skills</h2>
<section>
<p>Web Design</p>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
</section>
<section>
<p>Design</p>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="gray-dot">●</span>
<span class="gray-dot">●</span>
</section>
</article>
备注:
在此处了解 align-self
属性:
在此处了解 auto
页边距:
间距不均匀是由 float: right;
引起的,在您的示例中,第二行有 2 个跨度,而第一行只有一个跨度,浮动删除了白色 space 之间的渲染标签。
您可以将每个点都包裹成一个跨度,这将解决间距问题,并注意由浮动引起的颠倒顺序。
.green-dot {
color: #20b08f;
}
.gray-dot {
color: gray;
}
.professional-skills .green-dot,
.professional-skills .gray-dot {
float: right;
font-size: 1.5rem;
margin-left: 5px;
margin-top: -5px;
}
<div class="professional-skills">
<h2>Professional Skills</h2>
<p>
Web Design
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
</p>
<p>
Design
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="gray-dot">●</span>
<span class="gray-dot">●</span>
</p>
</div>
我在 CSS 中创建了一个浮动示例。但是,我对元素之间的顺序和 space 有疑问。这是结果:
灰色点应该在绿色点的右侧,甚至于绿色点。
有什么想法吗?谢谢,
这是我的代码示例:https://jsfiddle.net/dalenguyen/mfj78LL5/
.green-dot {
color: #20b08f;
}
.gray-dot {
color: grey;
}
.professional-skills .green-dot,
.professional-skills .gray-dot {
float: right;
font-size: 1.5rem;
}
<div class="professional-skills">
<h2>Professional Skills</h2>
<p>Web Design <span class="green-dot">● ● ● ● ●</span></p>
<p>Design <span class="green-dot">● ● ●</span><span class="gray-dot">● ●</span></p>
</div>
</div>
您可以更新以下内容:
.professional-skills .green-dot, .professional-skills .gray-dot
{
float: right;
font-size: 1.5rem;
padding-right:5px;
}
它会起作用,但最好将每个圆圈分开 DIV。
当使用 float:right;
时,最远的元素始终是 HTML 代码中之前出现的元素。如果你想让你的灰点与你的绿点对齐,你必须先将它们插入你的 HTML.
此外,如前所述,您可能希望将点拆分到单独的容器中,这样您就可以完全控制间距(而不是在点之间使用空格)。参见 Mhd.Jarkas 的回答。
希望对您有所帮助!
试试这个
.green-dot,.green-dot-1 {
color: #20b08f;
}
.gray-dot,.gray-dot-1 {
color: grey;
}
.professional-skills .green-dot, .professional-skills .gray-dot{
float: right;
font-size: 1.5rem;
}
#dots{
font-size: 1.5rem;
float : right;
}
#abc{
float: left;
}
#clear {
clear: both;
}
.green-dot-1{
padding-right: 5px;
}
<div class="professional-skills">
<h2>Professional Skills</h2>
<p>Web Design <span class="green-dot">● ● ● ● ●</span></p>
<p id="abc">Design </p>
<div id="dots">
<span class="green-dot-1">● ● ●</span><span class="gray-dot-1">● ●</span>
</div>
<div id="clear"></div>
</div>
</div>
CSS float
属性 从未为建筑布局设计。
它是为在图像周围环绕文字而设计的。
因为 CSS 没有提供更好的布局系统,浮动(和表格、内联块和绝对定位)已被用作 hack 解决方法。
但是现在 CSS3 flex and grid modules have wide browser support,并且它们是专门为建筑布局设计的,您应该考虑使用它们。
section {
display: flex;
}
section > * {
margin: 0;
align-self: center; /* 1 */
}
section > p {
margin-right: auto; /* 2 */
}
.green-dot {
color: #20b08f;
font-size: 1.5rem;
}
.gray-dot {
color: grey;
font-size: 1.5rem;
}
<article class="professional-skills">
<h2>Professional Skills</h2>
<section>
<p>Web Design</p>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
</section>
<section>
<p>Design</p>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="gray-dot">●</span>
<span class="gray-dot">●</span>
</section>
</article>
备注:
在此处了解
align-self
属性:在此处了解
auto
页边距:
间距不均匀是由 float: right;
引起的,在您的示例中,第二行有 2 个跨度,而第一行只有一个跨度,浮动删除了白色 space 之间的渲染标签。
您可以将每个点都包裹成一个跨度,这将解决间距问题,并注意由浮动引起的颠倒顺序。
.green-dot {
color: #20b08f;
}
.gray-dot {
color: gray;
}
.professional-skills .green-dot,
.professional-skills .gray-dot {
float: right;
font-size: 1.5rem;
margin-left: 5px;
margin-top: -5px;
}
<div class="professional-skills">
<h2>Professional Skills</h2>
<p>
Web Design
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
</p>
<p>
Design
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="green-dot">●</span>
<span class="gray-dot">●</span>
<span class="gray-dot">●</span>
</p>
</div>