【发布时间】:2020-02-15 18:45:39
【问题描述】:
我正在使用具有 2 行和 1 列的 CSS 网格布局,在其中,我放置了一个几乎占据整个视口的单词 font-size:23rem;。我正在尝试仅使用 CSS 和 HTML 复制 this 音乐专辑封面。首先关于我的问题,我有两行,在起始行或顶行,我放置了两个字母“U”和“N”,如果你仔细观察,N 伸展得更多不是它的伙伴,字母U,因此接触了其他单词,如果你回到U的下端你可以看到这个没有接触下面的字母,即T 。
由于它们在轴上看起来具有相同的高度和对齐方式,我如何才能成功复制封面?我应该选择 SVG 文本还是在 SVG 上为这些绘制图案?如果 CSS 无法复制这一点会怎样?
* {
box-sizing: border-box;
}
body, html {
margin: 0;
padding: 0;
font-size: 16px;
}
p {
font-family: sans-serif;
}
li {
list-style-type: none;
font-family: sans-serif;
}
.unity-cover {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 2fr 2fr;
grid-template-areas:
"start-row"
"end-row";
justify-items: center;
}
.start-row {
grid-area: start-row;
display: flex;
}
.end-row {
grid-area: end-row;
display: flex;
}
.letter {
font-weight: bold;
margin-right: 1px;
font-size: 23rem;
}
.letter-u {
height: 300px;
position: relative;
top: 27px;
}
.letter-n {
height: 300px;
position: relative;
top: 40px;
right: 0px;
}
.letter-i {
height: 300px;
}
.letter-t {
height: 300px;
}
.letter-y {
height: 300px;
position: relative;
right: 40px;
}
<body>
<ul class="unity-cover">
<div class="start-row">
<li class="letter letter-u">U</li>
<li class="letter letter-n">N</li>
</div>
<div class="end-row">
<li class="letter letter-i">I</li>
<li class="letter letter-t">T</li>
<li class="letter letter-y">Y</li>
</div>
</ul>
</body>
【问题讨论】:
-
你所说的“N 比它的伙伴伸展得更多”是什么意思?拉伸是哪个方向,“U”是它的伙伴吗?
-
我会说首先应用 css 并根据您的需要调整它,确保您有一个有效的 HTML 结构 .. 因为
<ul class="unity-cover"><div class="start-row"><li class="letter letter-u">U</li>无效,ul 只能有 li 用于 direct-child , , 那么我会说,如果你使用网格,无论如何都不需要额外的标记,使用网格电源;)网格和规模可以做类似的事情:codepen.io/gc-nomade/pen/yLLVNNK
标签: html css css-grid font-size typography