中心文字到底部的网格区域

发布于 2025-02-12 16:30:13 字数 1153 浏览 0 评论 0 原文

我对HTML和CSS有点陌生,但我正在尝试学习网格。我有WPF的背景,该背景大量使用网格。它主要是简单的,但我对如何对齐该区域的底部感到困惑。

AccountBar.js

<div className={styles.container}>
    <img className={styles.avatar} style={{backgroundImage: `url(${profileURL})`}}></img>
    <text className={styles.username}>Username</text>
    <text className={styles.discriminator}>#1337</text>
</div>

style.module.css

.container {
    display: grid;
    grid-template-areas:
    'avatar username'
    'avatar discriminator';
}

.avatar {
    grid-area: avatar;
    background-image: url('https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif');
    background-size: cover;
    border-radius: 50%;
    width: 100px;
    height: 100px;
    border: 3px solid #591496;
}

.username {
    grid-area: username;
    color: white;
}

.discriminator {
    grid-area: discriminator;
    color: white;
}

结果看起来像是如此,但是我试图将“用户名”与单元的底部保持一致。

I'm a bit new to HTML and CSS but I'm trying to learn grids. I have a background in WPF which heavily uses grids. It's mostly straightforward but I'm confused on how to align to the bottom of it's area.

AccountBar.js

<div className={styles.container}>
    <img className={styles.avatar} style={{backgroundImage: `url(${profileURL})`}}></img>
    <text className={styles.username}>Username</text>
    <text className={styles.discriminator}>#1337</text>
</div>

style.module.css

.container {
    display: grid;
    grid-template-areas:
    'avatar username'
    'avatar discriminator';
}

.avatar {
    grid-area: avatar;
    background-image: url('https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif');
    background-size: cover;
    border-radius: 50%;
    width: 100px;
    height: 100px;
    border: 3px solid #591496;
}

.username {
    grid-area: username;
    color: white;
}

.discriminator {
    grid-area: discriminator;
    color: white;
}

The result looks like so, but I'm trying to align "Username" to the bottom of it's cell.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

山川志 2025-02-19 16:30:13

我认为您的问题不是来自网格,而是来自元素对齐。您可以添加保证金 - top:auto; (添加顶部边距以覆盖所有上空空间并将您的文本推到底部) .username ,这将帮助您完成诡计。

.container {
  display: grid;
  grid-template-areas:
    'avatar username'
    'avatar discriminator';
  background-color: #ccc; /*For testing*/
}

.avatar {
  grid-area: avatar;
  background-image: url('https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif');
  background-size: cover;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  border: 3px solid #591496;
}

.username {
  grid-area: username;
  color: white;
  margin-top: auto; /*The change is here*/
}

.discriminator {
  grid-area: discriminator;
  color: white;
}
<div class="container">
    <img class="avatar" style="background-image: url('https://cdn.pixabay.com/photo/2015/04/23/22/00/tree-736885__480.jpg');"/>
    <text class="username">Username</text>
    <text class="discriminator">#1337</text>
</div>

I think your problem is not from the grid but from element alignment. You can add margin-top: auto; (adding a top margin to cover all upper space and push your text to the bottom) to .username which would help you do the trick.

.container {
  display: grid;
  grid-template-areas:
    'avatar username'
    'avatar discriminator';
  background-color: #ccc; /*For testing*/
}

.avatar {
  grid-area: avatar;
  background-image: url('https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif');
  background-size: cover;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  border: 3px solid #591496;
}

.username {
  grid-area: username;
  color: white;
  margin-top: auto; /*The change is here*/
}

.discriminator {
  grid-area: discriminator;
  color: white;
}
<div class="container">
    <img class="avatar" style="background-image: url('https://cdn.pixabay.com/photo/2015/04/23/22/00/tree-736885__480.jpg');"/>
    <text class="username">Username</text>
    <text class="discriminator">#1337</text>
</div>

南城旧梦 2025-02-19 16:30:13

这里的一些解决方案:

简单的解决方案:

因为您正在使用 display:grid set align-fell:flex-end in .username

.container {
  display: grid;
  grid-template-areas: 'avatar username' 'avatar discriminator';
  background: gray
}

.avatar {
  grid-area: avatar;
  background-image: url('https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif');
  background-size: cover;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  border: 3px solid #591496;
}

.username {
  grid-area: username;
  color: white;
  align-self: flex-end
}

.discriminator {
  grid-area: discriminator;
  color: white;
}
<div class="container">
  <img class="avatar" src="https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif">
  <text class="username">Username</text>
  <text class="discriminator">#1337</text>
</div>

SET 保证金顶:auto in .username

.container {
  display: grid;
  grid-template-areas: 'avatar username' 'avatar discriminator';
  background: gray
}

.avatar {
  grid-area: avatar;
  background-image: url('https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif');
  background-size: cover;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  border: 3px solid #591496;
}

.username {
  grid-area: username;
  color: white;
  margin-top: auto
}

.discriminator {
  grid-area: discriminator;
  color: white;
}
<div class="container">
  <img class="avatar" src="https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif">
  <text class="username">Username</text>
  <text class="discriminator">#1337</text>
</div>


复杂的(不一定需要使用这些)

使用显示:网格 and 对齐content:flex-end in .username

.container {
  display: grid;
  grid-template-areas: 'avatar username' 'avatar discriminator';
  background: gray
}

.avatar {
  grid-area: avatar;
  background-image: url('https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif');
  background-size: cover;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  border: 3px solid #591496;
}

.username {
  grid-area: username;
  color: white;
  display: grid;
  align-content: flex-end
}

.discriminator {
  grid-area: discriminator;
  color: white;
}
<div class="container">
  <img class="avatar" src="https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif">
  <text class="username">Username</text>
  <text class="discriminator">#1337</text>
</div>

使用显示:Flex; flex方向:列 and 合理 - 符合:flex-end in .username in

.container {
  display: grid;
  grid-template-areas: 'avatar username' 'avatar discriminator';
  background: gray
}

.avatar {
  grid-area: avatar;
  background-image: url('https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif');
  background-size: cover;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  border: 3px solid #591496;
}

.username {
  grid-area: username;
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: flex-end
}

.discriminator {
  grid-area: discriminator;
  color: white;
}
<div class="container">
  <img class="avatar" src="https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif">
  <text class="username">Username</text>
  <text class="discriminator">#1337</text>
</div>

A few solutions here:

Easy ones:

Because you are using display: grid set align-self: flex-end in .username

.container {
  display: grid;
  grid-template-areas: 'avatar username' 'avatar discriminator';
  background: gray
}

.avatar {
  grid-area: avatar;
  background-image: url('https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif');
  background-size: cover;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  border: 3px solid #591496;
}

.username {
  grid-area: username;
  color: white;
  align-self: flex-end
}

.discriminator {
  grid-area: discriminator;
  color: white;
}
<div class="container">
  <img class="avatar" src="https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif">
  <text class="username">Username</text>
  <text class="discriminator">#1337</text>
</div>

Set margin-top: auto in .username

.container {
  display: grid;
  grid-template-areas: 'avatar username' 'avatar discriminator';
  background: gray
}

.avatar {
  grid-area: avatar;
  background-image: url('https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif');
  background-size: cover;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  border: 3px solid #591496;
}

.username {
  grid-area: username;
  color: white;
  margin-top: auto
}

.discriminator {
  grid-area: discriminator;
  color: white;
}
<div class="container">
  <img class="avatar" src="https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif">
  <text class="username">Username</text>
  <text class="discriminator">#1337</text>
</div>


Complex ones (not necessarily need to use these)

Use display: grid and align-content: flex-end in .username

.container {
  display: grid;
  grid-template-areas: 'avatar username' 'avatar discriminator';
  background: gray
}

.avatar {
  grid-area: avatar;
  background-image: url('https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif');
  background-size: cover;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  border: 3px solid #591496;
}

.username {
  grid-area: username;
  color: white;
  display: grid;
  align-content: flex-end
}

.discriminator {
  grid-area: discriminator;
  color: white;
}
<div class="container">
  <img class="avatar" src="https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif">
  <text class="username">Username</text>
  <text class="discriminator">#1337</text>
</div>

Use display: flex; flex-direction: column and justify-content: flex-end in .username

.container {
  display: grid;
  grid-template-areas: 'avatar username' 'avatar discriminator';
  background: gray
}

.avatar {
  grid-area: avatar;
  background-image: url('https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif');
  background-size: cover;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  border: 3px solid #591496;
}

.username {
  grid-area: username;
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: flex-end
}

.discriminator {
  grid-area: discriminator;
  color: white;
}
<div class="container">
  <img class="avatar" src="https://tenor.com/view/pigeon-pidgeon-fire-eyes-burn-gif-24781901.gif">
  <text class="username">Username</text>
  <text class="discriminator">#1337</text>
</div>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文