#javascript #html #jquery #css #sass
Вопрос:
У меня есть следующий код:
.blockquote1 {
padding: 60px 80px 40px;
width: 1090px;
text-align: center;
}
.blockquote1 h7 {
font-family: "Utopia-italic";
font-size: 35px;
font-weight: 700px;
text-align: center;
}
.blockquote1:before {
position: absolute;
font-family: 'FontAwesome';
top: 100;
content: "f10d";
font-size: 200px;
color: rgba(0, 0, 0, 0.1);
}
.blockquote1::after {
content: "";
top: 20px;
left: 50%;
margin-left: center;
position: absolute;
border-bottom: 3px solid #0563bb;
height: 3px;
width: 200px;
}
blockquote2 cite {
color: #999999;
position: relative;
font-size: 14px;
left: 845px;
bottom: 60px;
margin-top: 5px;
}
blockquote2 cite:before {
content: "2014 2009";
}
blockquote {
font-family: Georgia, serif;
font-size: 18px;
font-style: italic;
max-width: 100%;
margin: 0.25em 0;
padding: 0.35em 40px;
line-height: 1.45;
position: relative;
color: #383838;
}
@media (min-width: 800px) {
blockquote {
width: 800px;
}
}
blockquote:before {
display: block;
padding-left: 10px;
content: "201C";
font-size: 80px;
position: absolute;
left: -20px;
top: -20px;
color: #7a7a7a;
}
blockquote cite {
color: #999999;
font-size: 14px;
display: block;
margin-top: 5px;
}
blockquote cite:before {
content: "2014 2009";
}
<blockquote class="blockquote1">
<h7>Move in silence, only speak when it’s time to say checkmate.</h7>
</blockquote>
<br />
<blockquote2>
<cite>Kr. Pankaj Yadav</cite>
</blockquote2>
Таким образом, фактический текст реагирует так, как будто он меняет ширину при изменении ширины устройства. Однако bockquote2 cite
он не реагирует и не меняет свое положение/ширину при меньших размерах экрана. Как бы я сделал так, чтобы он отображался как большой текст на небольших устройствах?
Ожидаемые результаты
Это должен быть ожидаемый результат, есть какие-нибудь предложения о том, как это сделать возможным?
Комментарии:
1. почему вы используете элемент blockqute2, созданный вместо класса, подобного первому ?
2. Хорошо. У вас есть все это 🙂 пользовательские элементы, такие как
blockquote2
(?), вес шрифта в пикселях (?), расположение без единиц измерения ` top: 100;` (?), вы используете класс, а затем тег для одного и того же элемента ? это очень сбивает с толку. тогда у вас естьleft: 845px;
элемент cite. Конечно, он не будет реагировать. Взгляните на «адаптивный дизайн» и посмотрите, какие у вас есть решения.3. Блок-цитаты реагируют до тех пор, пока вы не скажете им этого не делать. Если вы хотите адаптивный макет, откажитесь от привычки устанавливать фиксированные размеры пикселей и использовать положение:абсолютное.
4.
blockquote2
является недопустимым HTML, если у вас нет кода, добавляющего его вCustomElementRegistry
.5. Что бы вы ни делали, не приписывайте этому человеку повторное предложение. :0
Ответ №1:
Вопрос в том, как разместить цитату в нужном месте — обоснованную справа под цитатой. Он не хочет, чтобы все это было отзывчивым (в смысле изменения размеров текста и т. Д., Чтобы цитата вписывалась в строку так же, как на более широком устройстве).
Мое предложение состояло бы в том, чтобы использовать HTML-блок-цитату и связанный с ней элемент cite вместе по назначению (см. MDN). То есть цитата является дочерним элементом (основной) блок-цитаты. Это также облегчит доступность.
Итак, в качестве первого «быстрого исправления» этот фрагмент изменяет HTML, чтобы удалить вторую блок-цитату, поскольку семантически второй цитаты нет, и выравнивает текст цитаты по правому краю. Это также изменяет настройку ширины блок-цитаты, поскольку заданные настройки могут привести к переполнению цитаты вправо на более узких экранах просмотра. Он сохраняет максимальную ширину цитаты равной 1090 пикселей, хотя, как и в коде вопроса.
.blockquote1 {
box-sizing: border-box;
padding: 60px 80px 40px;
max-width: 1090px;
width: 100%;
/* make sure it can fit into its container */
text-align: center;
}
.blockquote1 h7 {
font-family: "Utopia-italic";
font-size: 35px;
font-weight: 700px;
text-align: center;
}
.blockquote1:before {
position: absolute;
font-family: 'FontAwesome';
top: 100;
content: "f10d";
font-size: 200px;
color: rgba(0, 0, 0, 0.1);
}
.blockquote1::after {
content: "";
top: 20px;
left: 50%;
margin-left: center;
position: absolute;
border-bottom: 3px solid #0563bb;
height: 3px;
width: 200px;
}
blockquote2 {
rtext-align: right;
background-color: cyan;
}
.blockquote1 cite {
color: #999999;
position: relative;
font-size: 14px;
margin-top: 5px;
text-align: right; /* added */
width: 100%;
display: inline-block;
}
.blockquote1 cite:before {
content: "2014 2009";
}
blockquote {
font-family: Georgia, serif;
font-size: 18px;
font-style: italic;
max-width: 100%;
margin: 0.25em 0;
padding: 0.35em 40px;
line-height: 1.45;
color: #383838;
}
/* removed as it would cause overflow on narrower devices
@media (min-width: 800px) {
blockquote {
width: 800px;
}
}
*/
blockquote:before {
display: block;
padding-left: 10px;
content: "201C";
font-size: 80px;
position: absolute;
left: -20px;
top: -20px;
color: #7a7a7a;
}
blockquote cite:before {
content: "2014 2009";
}
<blockquote class="blockquote1">
<h7>Move in silence, only speak when it’s time to say checkmate.</h7>
<br>
<cite>Kr. Pankaj Yadav</cite>
</blockquote>
Ответ №2:
Вы должны использовать%, а не пиксели, если хотите, чтобы он изменялся вместе с экраном, если это то, что вы хотите. Просто измените положение сверху, снизу, слева и справа от пикселей(пикселей) на проценты(%). Это должно сработать.
Изменить: вы также меняете шрифт с пикселей на %
.blockquote1 {
padding: 60px 80px 40px;
width: 1090px;
text-align: center;
}
.blockquote1 h7 {
font-family: "Utopia-italic";
font-size: 35px;
font-weight: 700px;
text-align: center;
}
.blockquote1:before {
position: absolute;
font-family: 'FontAwesome';
top: 100;
content: "f10d";
font-size: 200px;
color: rgba(0, 0, 0, 0.1);
}
.blockquote1::after {
content: "";
top: 20px;
left: 50%;
margin-left: center;
position: absolute;
border-bottom: 3px solid #0563bb;
height: 3px;
width: 200px;
}
blockquote2 cite {
color: #999999;
position: relative;
font-size: 10%;
left: 845px;
bottom: 60px;
margin-top: 5px;
}
blockquote2 cite:before {
content: "2014 2009";
}
blockquote {
font-family: Georgia, serif;
font-size: 18px;
font-style: italic;
max-width: 100%;
margin: 0.25em 0;
padding: 0.35em 40px;
line-height: 1.45;
position: relative;
color: #383838;
}
@media (min-width: 800px) {
blockquote {
width: 800px;
}
}
blockquote:before {
display: block;
padding-left: 10px;
content: "201C";
font-size: 80px;
position: absolute;
left: -20px;
top: -20px;
color: #7a7a7a;
}
blockquote cite {
color: #999999;
font-size: 14px;
display: block;
margin-top: 5px;
}
blockquote cite:before {
content: "2014 2009";
}
Комментарии:
1. Вы должны скопировать фрагмент и внести описанные изменения, чтобы продемонстрировать свое решение.
2. Ну, вы должны использовать любую относительную единицу измерения, из которой процент равен единице. Вы можете использовать
em
rem
,vw
,vh
, и т.д., Как указано в MDN .
Ответ №3:
- Неправильные HTML-теги
blockquote2
и h7
не являются правильными HTML-тегами. теги заголовка заканчиваются, h6
и вы можете использовать только blockquote
их .
- Вы Можете Использовать Медиа-Запросы
Как вы выбрали blockquote
в следующем коде, вы также можете изменить другие.
@media (max-width: 800px) {
blockquote {
width: 800px;
}
.blockquote2 {
font-size: 35px;
}
}
- Неправильный Размер, Используемый Для Шрифтов
Вы можете только использовать % px em rem vw ...
. просто не используйте ширину.