#html #css
#HTML #css
Вопрос:
Я хочу иметь кнопку с днем недели и часом в центре и маленькой датой ГГГГ-ММ-ДД в верхнем левом углу. Я использую псевдоселектор :before однако мне бы хотелось, чтобы элемент ::before не влиял на размер кнопки и основной текст, прямо сейчас он увеличивает размер кнопки и изменяет положение основного текста. Кроме того, я хотел бы разместить его в верхнем левом углу. codepen
.hour-btn {
border-style: solid;
border-width: 0.15vw;
border-radius: 0.5vw;
padding: 2vw 2vw;
margin: 1vw 1vw;
box-sizing: border-box;
width: calc(100% / 3.5);
height: 6vw;
font-family: "Lato";
font-size: 1.4vw;
}
.hour-btn[title]::before {
content: attr(title);
position: relative;
z-index: 52;
top: -2vw;
font-size: 0.8vw;
}
<button title="2020-10-24" class="hour-btn">Saturday 20:20
</button>
Комментарии:
1. используйте
px
единицу измерения вместоvw
для всех, таких как ширина, отступы, поля и т. Д2. Вы хотите, чтобы текст кнопки был слева? Или заголовок
3. Вы должны прочитать о разнице между vw, vh, em, rem, px … и т.д. Также вы неправильно понимаете, как работает псевдоэлемент :before .
Ответ №1:
Вот как я это исправил :
.hour-btn {
border-style: solid;
position: relative;
display: inline-flex;
border-width: 0vw;
border-radius: 0.5vw;
padding: 2vw 2vw;
margin: 1vw 1vw;
box-sizing: border-box;
width: calc(100% / 3.5);
height: 6vw;
color: white;
font-weight: bold;
background-color: gray;
border-color: blue;
}
.hour-btn[title]::before {
content: attr(title);
z-index: 4;
position: absolute;
display: block;
width: 100%;
height: 100%;
margin-left: 0;
text-align: left;
top: 2px;
left: 6px;
font-size: 0.8vw;
font-weight: lighter;
opacity: 0.7;
}
<button title="2020-10-24" class="hour-btn">Saturday 20:20
</button>
Ответ №2:
Вы можете попробовать этот css.
.hour-btn {
border-style: solid;
border-width: 0.15px;
border-radius: 0.5px;
padding: 25px 50px;
/*margin: 1vw 1vw;*/
text-align: center;
box-sizing: border-box;
/*width: calc(100% / 3.5);*/
font-family: "Lato";
font-size: 20px;
position: relative;
}
.hour-btn[title]::before {
content: attr(title);
position: absolute;
z-index: 52;
top: 0.25px;
font-size: 16px;
left: 0.25px;
display: block;
}
<button title="2020-10-24" class="hour-btn">Saturday 20:20
</button>
Ответ №3:
Как насчет этого:-
.hour-btn {
border-style: solid;
border-width: 0.15vw;
border-radius: 0.5vw;
padding: 2vw 2vw;
margin: 1vw 1vw;
box-sizing: border-box;
width: calc(100% / 3.5);
height: 6vw;
font-family: "Lato";
font-size: 1.4vw;
}
.hour-btn[title]::before {
content: attr(title);
position: relative;
z-index: 52;
top: -1.5vw;
left: -5vw;
font-size: 0.8vw;
}
<button title="2020-10-24" class="hour-btn">Saturday 20:20
</button>