任何人都知道将“alt符号”与“常规文本”对齐的最佳方法 - 似乎无法将这两者都置于中心(或任何东西)而没有一些hacky操作。
我目前正在使用CSS网格,但如果它们易于实施且可持续发展,我会对其他解决方案持开放态度。
display.jsx
<div onClick={props.toggle} className='data__item__header'>
<span className='data__item__header__bullet'>●</span>
<p className='data__item__header__title'>Clashes {props.index}</p>
</div>
display.scss
.data__item__header {
display: grid;
grid-template-columns: 20px 1fr;
line-height: 20px;
align-content: center;
grid-gap: 10px;
}
.data__item__header__bullet {
font-size: 36px;
color: $tomato;
border: 1px solid blue;
display:grid;
text-align: center;
}
.data__item__header__title {
border: 1px solid green;
}
目前是:
应该:
将align-self: center
和justify-self: center
添加到.data__item__header__bullet
元素,并调整行高 - 请参阅下面的演示:
.data__item__header {
display: grid;
grid-template-columns: 20px 1fr;
line-height: 36px; /*changed*/
/* align-content: center; */ /* not needed */
grid-gap: 10px;
}
.data__item__header__bullet {
font-size: 36px;
color: $tomato;
border: 1px solid blue;
display:grid;
text-align: center;
align-self: center; /* added */
justify-self: center; /* added */
}
.data__item__header__title {
border: 1px solid green;
}
<div class='data__item__header'>
<span class='data__item__header__bullet'>●</span>
<p class='data__item__header__title'>Clashes {props.index}</p>
</div>
您可以使用●
为您提供更好的子弹样式,而不是使用可能会给您带来对齐问题的border-radius
字符 - 请参阅下面的演示:
.data__item__header {
display: grid;
grid-template-columns: 20px 1fr;
grid-gap: 10px;
}
.data__item__header__bullet {
background: blue;
border-radius: 100%; /* added */
height: 10px; /* added */
width: 10px; /* added */
display:grid;
text-align: center;
align-self: center;
justify-self: center;
}
.data__item__header__title {
border: 1px solid green;
}
<div class='data__item__header'>
<span class='data__item__header__bullet'></span>
<p class='data__item__header__title'>Clashes {props.index}</p>
</div>