#html #css #flexbox #responsive
#HTML #css #flexbox #адаптивный
Вопрос:
Я создаю с нуля одностраничный веб-сайт портфолио и контактов, который отлично смотрится в мобильной версии. С чем я борюсь, так это с тем, чтобы оно выглядело так, как задумано в планшетной и настольной версии.
На данный момент в мобильной версии есть раздел портфолио с эскизами и текстом внизу (в мобильном представлении будет отображаться только 2 проекта, но их должно быть 8 на планшете и на рабочем столе), один под другим. Раздел контактов с фотографией, вводным текстом, формой и значками социальных сетей.
Я все еще работаю над представлением на планшете.
Мои самые большие проблемы заключаются в следующих:
ПРОСМОТР НА ПЛАНШЕТЕ
-
Портфолио: хотя 8 проектов успешно отображаются в 2 столбцах / 4 строках, они слегка выровнены слева. Если мне удалось выровнять эскизы по центру, текст / описание также выровнены по центру, но они должны отображаться слева, как сейчас.
-
Контакты: аналогичная проблема возникает с изображением в контактах и вводным текстом: слегка выровнено по левому краю. В то время как в представлении планшета должно сохраняться мобильное представление, то есть изображение и вступление сверху, форма посередине, а значки социальных сетей внизу, на планшете форма, в частности, слишком широкая, поэтому я установил ширину, но я не уверен, было ли этоправильный подход.
У всех больших пальцев есть класс, потому что я хотел, чтобы они изменяли размер в соответствии с устройством. Но я боюсь, что я перепутал код где-то посередине, пробуя разные подходы и решения.
РЕДАКТИРОВАТЬ 29.10.2010: я фактически исправил раздел портфолио, изменив некоторые фрагменты кода, например, удалив класс «thumb» из изображений.
Мои самые большие проблемы сейчас заключаются в следующем:
ПРОСМОТР НА ПЛАНШЕТЕ:
-
Раздел контактов по-прежнему перепутан: цель по-прежнему показывает один div под другим, как в мобильном представлении, но он слишком широкий, неправильно выровнен, а значки социальных сетей отображаются там, где они не должны.
-
Внизу, прямо под авторским правом, есть немного места.
ПРОСМОТР НА РАБОЧЕМ СТОЛЕ:
-
Логотип и навигация раньше отображались в одной строке, но теперь это не так, навигация отображается справа, но немного ниже.
-
Раздел контактов здесь тоже перепутан: 3 раздела отображаются прямо рядом друг с другом, в то время как они должны отображать 2 раздела слева и 1 раздел (больший / длинный, который имеет форму) справа.
-
Как и в представлении на планшете, внизу, прямо под авторским правом, есть немного места.
Это текущий код:
/* General Style */
html,
body {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
font-size: 16px;
}
body {
font: 400 1em 'Roboto', Arial, sans-serif;
color: #BFBFBF;
background: #262526;
padding: 0;
margin: 0 auto;
}
.container {
width: 90%;
margin: 0 auto;
padding: 0;
}
h1,
h2,
h3 {
font-family: 'Playfair Display', serif;
margin: 0;
padding: 0;
}
h4,
h5,
h6 {
font-family: 'Roboto', sans-serif;
margin: 0;
padding: 0;
}
ul,
ol {
list-style-type: none;
margin: 0;
padding: 0;
}
a {
font-weight: bold;
color: #ED8E82;
text-decoration: none;
}
a:hover,
a:active {
color: #BFBFBF;
}
img {
width: 100%;
}
.topsection {
background: #262526;
display: flex;
justify-content: center;
align-items: center;
flex-flow: row wrap;
}
.middlesection {
background: #4A484A;
}
.bottomsection {
background: #F2F2F2;
}
/* Base Header - Footer Style */
header {
display: flex;
justify-content: center;
align-items: center;
flex-flow: row wrap;
margin: 0 auto;
text-align: center;
flex-basis: 100%;
}
header .logo a {
font: 400 normal 1.25em 'Playfair Display', serif;
color: #BFBFBF;
text-transform: uppercase;
line-height: 2.109375em;
height: 50px;
margin: 0;
}
footer {
margin: 0 auto;
width: 100%;
}
footer p {
margin: 0;
}
.copyright {
font-size: 0.875em;
color: #BFBFBF;
text-align: center;
margin: 20px 0;
}
/* ---- MOBILE STYLE --- */
/* Navigation*/
header nav {
padding: 40px 0;
display: flex;
justify-content: center;
align-items: center;
flex-basis: 100%;
}
header nav ul {
margin: 0;
padding: 0;
}
header nav ul li {
padding: 10px 0;
line-height: 2.109375em;
}
header nav ul li a {
font: 400 normal 1em 'Roboto', sans-serif;
color: #BFBFBF;
text-transform: uppercase;
text-decoration: none;
text-align: center;
position: relative;
padding-bottom: 5px;
}
header nav ul li a:hover,
header nav ul li a:active {
color: #ED8E82;
}
p {
font-size: 1em;
line-height: 1.25em;
}
/* About */
.about-me {
margin-bottom: 130px;
}
.about-me h3{
font-weight: bold;
font-size: 1.875em;
color: #ED8E82;
line-height: 1em;
padding: 25px 0;
}
.about-me span {
color: #BFBFBF;
}
.about-me p {
font-size: 1.25em;
}
/* Portfolio */
.portfolio {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
#portfolio {
padding: 65px 0 80px;
}
#portfolio h3 {
font-weight: bold;
font-size: 1.875em;
font-style: italic;
color: #ED8E82;
line-height: 1.25em;
margin-bottom: 65px;
width: 100%;
text-align: center;
}
.work {
display: flex;
padding: 0.5em;
width: 100%;
}
.portfolio h6 {
font-size: 1em;
font-style: italic;
line-height: 1.0625em;
color: #F2F2F2;
margin-top: 0;
margin-bottom: 0.4em;
}
.seemore-link {
text-align: center;
margin-top: 30px;
}
.mobileHide {
display: none;
}
/* Contacts */
.contacts {
display: flex;
flex-wrap: wrap;
}
#contacts {
padding: 65px 0 80px;
}
#contacts h3 {
font-weight: bold;
font-size: 1.875em;
font-style: italic;
color: #ED8E82;
line-height: 1.25em;
margin-bottom: 65px;
width: 100%;
text-align: center;
}
.pic-cv {
display: flex;
padding: 0.5em;
width: 100%;
}
.pic-cv img {
margin-bottom: 18px;
}
.piccv-text span {
color: #ED8E82;
}
.piccv-text p {
text-align: left;
color: #262526;
}
.form {
text-align: left;
color: #262526;
max-width: 25em;
margin-bottom: 18px;
}
.form h6 {
font-weight: bold;
font-size: 1em;
color: #ED8E82;
line-height: 1.1875em;
text-align: center;
margin: 77px 0 25px;
}
.contacts input[type=email] {
box-sizing: border-box;
width: 100%;
background: #fff;
border: 1px solid #BFBFBF;
padding: 1em;
color: #BFBFBF;
margin-bottom: 12px;
}
.contacts textarea {
box-sizing: border-box;
width: 100%;
overflow: hidden;
background: #fff;
border: 1px solid #BFBFBF;
padding: 1em;
color: #BFBFBF;
margin-bottom: 12px;
}
.contacts input[type=submit] {
width: 100%;
padding: 20px 0;
margin-top: 20px;
background-color: #ED8E82;
font: 600 normal 1.125em 'Roboto', sans-serif;
color: #F2F2F2;
border: none;
text-align: center;
text-transform: uppercase;
}
.required:after {
content:" *";
color: #ED8E82;
}
.pic-cv h6 {
font-weight: bold;
font-size: 1em;
color: #ED8E82;
line-height: 1.1875em;
width: 100%;
text-align: center;
margin: 77px 0 25px;
}
.social-icons {
display: flex;
justify-content: space-around;
align-items: center;
}
.social-icons p a {
display: flex;
justify-content: center;
align-items: center;
background: #BFBFBF;
color: #F2F2F2;
width: 40px;
height: 40px;
border-radius: 50%;
margin: 24px;
}
.social-icons p i {
font-size: 1.3125em;
}
/* End Mobile Style */
/* Tablet Style */ /* 48em = 768px */
@media (min-width: 48em) {
.mobileHide {
display: block;
}
/* About */
.about-me {
margin-top: 50px;
margin-bottom: 172px;
}
.about-me h3 {
width: 100%;
font-size: 2.25em;
}
/* Portfolio */
.work {
flex: 0 1 47%;
}
.seemore-link {
visibility: hidden;
}
/* Contacts */
.contacts {
/*max-width: 38em;*/
}
.pic-cv {
justify-content: center;
align-items: center;
flex-flow: row wrap;
max-width: 25em;
}
}
/* Desktop Style */ /* 75em = 1200px */
@media (min-width: 75em) {
/* Navigation */
header {
margin: 0 auto;
}
header .logo {
text-align: left;
flex-basis: 44%;
}
header nav {
flex-basis: 44%;
justify-content: flex-end;
}
header nav ul li {
padding: 0 10px;
display: inline;
}
header nav ul li a:hover,
header nav ul li a:active {
color: #BFBFBF;
}
header nav ul li a::before {
content: "";
position: absolute;
width: 100%;
height: 3px;
bottom: 0;
left: 0;
background-color: #ED8E82;
visibility: hidden;
transform: scaleX(0);
transition: all 0.3s ease-in-out 0s;
}
header nav ul li a:hover::before {
visibility: visible;
transform: scaleX(1);
}
/* About */
.about-me {
margin-top: 250px;
margin-bottom: 250px;
}
.about-me p {
width: 100%;
}
/* Portfolio */
.portfolio img {
filter: url("data:image/svg xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='grayscale'><feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0'/></filter></svg>#grayscale"); /* Firefox 10 , Firefox on Android */
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
filter: grayscale(100%);
filter: gray; /* IE 6-9 */
}
img:hover {
-webkit-filter: none;
-moz-filter: none;
-ms-filter: none;
filter: none;
}
.work {
width: 33.33%;
}
.work-text {
display: flex;
flex-direction: column;
padding: 1em;
width: 100%;
}
.work-text p {
flex: 1 0 auto;
}
/* Contacts */
.pic-cv {
width: 30%;
}
.piccv-text {
display: flex;
flex-direction: column;
padding: 1em;
width: 100%;
}
.piccv-text p {
flex: 1 0 auto;
}
<body>
<!-- Header / Navigation -->
<header class="topsection">
<div class="container">
<div class="logo"><a href="">Logo name</a></div>
<nav>
<ul>
<li><a href="#about">About</a></li>
<li><a href="#portfolio">Portfolio</a></li>
<li><a href="#contacts">Contacts</a></li>
</ul>
</nav>
</div><!-- Container ends here -->
</header> <!-- Header / Navigation ends here -->
<div class="topsection">
<section class="about-me container" data-aos="fade-up" id="about">
<h3>Hello, this is <span>some text.</span> <br>I love text.</h3>
<p>Some more text.</p>
<p>And a lot of text.</p>
</section>
</div><!-- About ends here -->
<div class="middlesection">
<section id="portfolio" data-aos="fade-down" class="container">
<h3>portfolio</h3>
<ul class="portfolio">
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
</ul>
<!-- End hidden content -->
<div class="seemore-link"><!-- Hidden only on tablet/desktop view-->
<a href="portfolio.html">See more</a>
</div>
</section>
</div>
<footer class="bottomsection">
<section id="contacts" class="container" data-aos="fade-right" >
<h3>contacts</h3>
<div class="contacts">
<div class="pic-cv">
<div class="piccv-text">
<img src="img/pic.jpg" alt="image" />
<p>Have any question? Please get in touch.<br><span>Email:</span> thisemail@gmail.com</p>
</div>
</div>
<div id="form" class="form">
<h6>Ask Info</h6>
<form method="post" action="http://web-domain.com/cgi-bin/formmail.cgi" onsubmit="return checkform(this);">
<label class="required" for="email">Email:</label>
<input type="email" required="required" value="email address">
<label class="required" for="text">Message:</label>
<!--<input type="text" "required" value="message">-->
<textarea name="text" cols="48" rows="5" required="required">message</textarea>
<input type="submit" value="send"></form>
<!--Form ends here-->
</div>
<div class="pic-cv">
<div id="socials" class="piccv-text">
<h6>Social</h6>
<div class="social-icons">
<p><a href="link.com" target="_blank"><i class="icon"></i></a></p>
<p><a href="link.com" target="_blank"><i class="icon"></i></a></p>
</div>
</div>
</div>
</div>
</section><!-- Contacts ends here -->
<p class="copyright"> Copyright © Name and Last Name</p>
</footer>
</body>
Большое вам спасибо за любую предоставленную помощь.
Комментарии:
1. спасибо @cornonthecob. На самом деле мне удалось исправить раздел портфолио, изменив несколько фрагментов кода, но раздел контактов по-прежнему испорчен (слишком широкий в представлении планшета, а 1-й и 3-й разделы не выровнены по центру и должны быть в 2 столбцах на рабочем столе), а логотип и навигация в представлении рабочего стола больше не выровненытоже. Это полный тестовый код: codepen.io/Penelope79/pen/wvWyPBO
2. Привет @Pen061 Я отредактировал свой пост, надеюсь, это то, что вам нужно 🙂
3. Спасибо за все ваши усилия @corn on the cob, я тоже только что обновил свой вопрос, потому что тем временем я исправил раздел портфолио. 🙂
4. пожалуйста, можете ли вы увидеть мое редактирование … заняло у меня 57 минут, наслаждайтесь 🙂 кроме того, пожалуйста, можем ли мы продолжить это обсуждение под моим ответом, потому что я получаю уведомления, если мы это делаем, и это, как правило, удобнее 🙂
Ответ №1:
Этот код должен помочь:
планшет:
- Я добавил еще несколько гибких ящиков, чтобы выровнять вещи посередине
- Я удалил поле из авторского права нижнего колонтитула и заменил его заполнением
Для рабочего стола:
-
Flexbox не применяется к дочерним элементам, поэтому я применил его к ним
-
Для этого вам следует использовать grid, см. Код 🙂
/* General Style */
html,
body {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
font-size: 16px;
}
body {
font: 400 1em 'Roboto', Arial, sans-serif;
color: #BFBFBF;
background: #262526;
padding: 0;
margin: 0 auto;
}
.container {
width: 90%;
margin: 0 auto;
padding: 0;
}
h1,
h2,
h3 {
font-family: 'Playfair Display', serif;
margin: 0;
padding: 0;
}
h4,
h5,
h6 {
font-family: 'Roboto', sans-serif;
margin: 0;
padding: 0;
}
ul,
ol {
list-style-type: none;
margin: 0;
padding: 0;
}
a {
font-weight: bold;
color: #ED8E82;
text-decoration: none;
}
a:hover,
a:active {
color: #BFBFBF;
}
img {
width: 100%;
}
.topsection {
background: #262526;
}
.topsection > .container {
display: flex;
justify-content: center;
align-items: center;
flex-flow: row wrap;
}
.middlesection {
background: #4A484A;
}
.bottomsection {
background: #F2F2F2;
}
/* Base Header - Footer Style */
header {
display: flex;
justify-content: center;
align-items: center;
flex-flow: row wrap;
margin: 0 auto;
text-align: center;
flex-basis: 100%;
}
header .logo a {
font: 400 normal 1.25em 'Playfair Display', serif;
color: #BFBFBF;
text-transform: uppercase;
line-height: 2.109375em;
height: 50px;
margin: 50px 0 0 0;
}
footer {
margin: 0 auto;
width: 100%;
}
footer p {
margin: 0;
}
.copyright {
font-size: 0.875em;
color: #BFBFBF;
text-align: center;
margin: 0;
padding: 20px 0;
}
/* ---- MOBILE STYLE --- */
/* Navigation*/
header nav {
padding: 40px 0;
display: flex;
justify-content: center;
align-items: center;
flex-basis: 100%;
}
header nav ul {
margin: 0;
padding: 0;
}
header nav ul li {
padding: 10px 0;
line-height: 2.109375em;
}
header nav ul li a {
font: 400 normal 1em 'Roboto', sans-serif;
color: #BFBFBF;
text-transform: uppercase;
text-decoration: none;
text-align: center;
position: relative;
padding-bottom: 5px;
}
header nav ul li a:hover,
header nav ul li a:active {
color: #ED8E82;
}
p {
font-size: 1em;
line-height: 1.25em;
}
/* About */
.about-me {
margin-bottom: 130px;
}
.about-me h3 {
font-weight: bold;
font-size: 1.875em;
color: #ED8E82;
line-height: 1em;
padding: 25px 0;
}
.about-me span {
color: #BFBFBF;
}
.about-me p {
font-size: 1.25em;
}
/* Portfolio */
.portfolio {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
#portfolio {
padding: 65px 0 80px;
}
#portfolio h3 {
font-weight: bold;
font-size: 1.875em;
font-style: italic;
color: #ED8E82;
line-height: 1.25em;
margin-bottom: 65px;
width: 100%;
text-align: center;
}
.work {
display: flex;
padding: 0.5em;
width: 100%;
}
.portfolio h6 {
font-size: 1em;
font-style: italic;
line-height: 1.0625em;
color: #F2F2F2;
margin-top: 0;
margin-bottom: 0.4em;
}
.seemore-link {
text-align: center;
margin-top: 30px;
}
.mobileHide {
display: none;
}
/* Contacts */
.contacts {
display: flex;
flex-wrap: wrap;
display: block; /* will be redifined as grid later on */
}
#contacts {
padding: 65px 0 80px;
}
#contacts h3 {
font-weight: bold;
font-size: 1.875em;
font-style: italic;
color: #ED8E82;
line-height: 1.25em;
margin-bottom: 65px;
width: 100%;
text-align: center;
}
.pic-cv {
grid-column: 1;
grid-row: 1;
display: flex;
padding: 0.5em;
width: 100%;
}
.socials-outer {
grid-column: 1;
grid-row: 2;
}
.pic-cv img {
margin-bottom: 18px;
}
.piccv-text span {
color: #ED8E82;
}
.piccv-text p {
text-align: left;
color: #262526;
}
.form {
grid-column: 2;
grid-row: 1 / 3;
text-align: left;
color: #262526;
margin: 0 auto;
}
.form h6 {
font-weight: bold;
font-size: 1em;
color: #ED8E82;
line-height: 1.1875em;
text-align: center;
margin: 77px 0 25px;
}
.contacts input[type=email] {
box-sizing: border-box;
width: 100%;
background: #fff;
border: 1px solid #BFBFBF;
padding: 1em;
color: #BFBFBF;
margin-bottom: 12px;
}
.contacts textarea {
box-sizing: border-box;
width: 100%;
overflow: hidden;
background: #fff;
border: 1px solid #BFBFBF;
padding: 1em;
color: #BFBFBF;
margin-bottom: 12px;
}
.contacts input[type=submit] {
width: 100%;
padding: 20px 0;
margin-top: 20px;
background-color: #ED8E82;
font: 600 normal 1.125em 'Roboto', sans-serif;
color: #F2F2F2;
border: none;
text-align: center;
text-transform: uppercase;
}
.required:after {
content: " *";
color: #ED8E82;
}
.pic-cv {
display: flex;
justify-content: center;
}
.pic-cv h6 {
font-weight: bold;
font-size: 1em;
color: #ED8E82;
line-height: 1.1875em;
width: 100%;
text-align: center;
margin: 77px 0 25px;
}
.social-icons {
grid-template-columns: 1;
grid-template-rows: 2;
display: flex;
justify-content: center;
align-items: center;
margin: 0 auto;
}
.social-icons p a {
display: flex;
justify-content: center;
align-items: center;
background: #BFBFBF;
color: #F2F2F2;
width: 40px;
height: 40px;
border-radius: 50%;
margin: 24px;
}
.social-icons p i {
font-size: 1.3125em;
}
.copyright {
margin: 0;
}
/* End Mobile Style */
/* Tablet Style */
/* 48em = 768px */
@media (min-width: 48em) {
.mobileHide {
display: block;
}
/* About */
.about-me {
margin-top: 50px;
margin-bottom: 172px;
}
.about-me h3 {
width: 100%;
font-size: 2.25em;
}
/* Portfolio */
.work {
flex: 0 1 47%;
}
.seemore-link {
visibility: hidden;
}
/* Contacts */
.contacts {
/*max-width: 38em;*/
width: 100%;
flex-direction: column;
justify-content: center;
}
.pic-cv {
justify-content: center;
align-items: center;
flex-flow: row wrap;
}
}
/* Desktop Style */
/* 75em = 1200px */
@media (min-width: 75em) {
/* Navigation */
header {
margin: 0 auto;
}
header .logo {
text-align: left;
flex-basis: 44%;
}
header nav {
flex-basis: 44%;
justify-content: flex-end;
}
header nav ul li {
padding: 0 10px;
display: inline;
}
header nav ul li a:hover,
header nav ul li a:active {
color: #BFBFBF;
}
header nav ul li a::before {
content: "";
position: absolute;
width: 100%;
height: 3px;
bottom: 0;
left: 0;
background-color: #ED8E82;
visibility: hidden;
transform: scaleX(0);
transition: all 0.3s ease-in-out 0s;
}
header nav ul li a:hover::before {
visibility: visible;
transform: scaleX(1);
}
/* About */
.about-me {
margin-top: 250px;
margin-bottom: 250px;
}
.about-me p {
width: 100%;
}
/* Portfolio */
.portfolio img {
filter: url("data:image/svg xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='grayscale'><feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0'/></filter></svg>#grayscale");
/* Firefox 10 , Firefox on Android */
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
filter: grayscale(100%);
filter: gray;
/* IE 6-9 */
}
img:hover {
-webkit-filter: none;
-moz-filter: none;
-ms-filter: none;
filter: none;
}
.work {
width: 33.33%;
}
.work-text {
display: flex;
flex-direction: column;
padding: 1em;
width: 100%;
}
.work-text p {
flex: 1 0 auto;
}
/* Contacts */
.contacts {
display: grid;
}
.pic-cv {
width: 30%;
}
.piccv-text {
display: flex;
flex-direction: column;
padding: 1em;
width: 100%;
}
.piccv-text p {
flex: 1 0 auto;
}
.form {
margin: 0;
}
}
<body>
<!-- Header / Navigation -->
<header class="topsection">
<div class="container">
<div class="logo"><a href="">Logo name</a></div>
<nav>
<ul>
<li><a href="#about">About</a></li>
<li><a href="#portfolio">Portfolio</a></li>
<li><a href="#contacts">Contacts</a></li>
</ul>
</nav>
</div>
<!-- Container ends here -->
</header>
<!-- Header / Navigation ends here -->
<div class="topsection">
<section class="about-me container" data-aos="fade-up" id="about">
<h3>Hello, this is <span>some text.</span> <br>I love text.</h3>
<p>Some more text.</p>
<p>And a lot of text.</p>
</section>
</div>
<!-- About ends here -->
<div class="middlesection">
<section id="portfolio" data-aos="fade-down" class="container">
<h3>portfolio</h3>
<ul class="portfolio">
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
<li class="work">
<div class="work-text">
<h6>Project</h6>
<img src="image" alt="img" />
<p>Description</p>
<a href="" target="_blank">Link</a>
</div>
</li>
</ul>
<!-- End hidden content -->
<div class="seemore-link">
<!-- Hidden only on tablet/desktop view-->
<a href="portfolio.html">See more</a>
</div>
</section>
</div>
<footer class="bottomsection">
<section id="contacts" class="container" data-aos="fade-right">
<h3>contacts</h3>
<div class="contacts">
<div class="pic-cv">
<div class="piccv-text">
<img src="img/pic.jpg" alt="image" />
<p>Have any question? Please get in touch.<br><span>Email:</span> thisemail@gmail.com</p>
</div>
</div>
<div id="form" class="form">
<h6>Ask Info</h6>
<form method="post" action="http://web-domain.com/cgi-bin/formmail.cgi" onsubmit="return checkform(this);">
<label class="required" for="email">Email:</label>
<input type="email" required="required" value="email address">
<label class="required" for="text">Message:</label>
<!--<input type="text" "required" value="message">-->
<textarea name="text" cols="48" rows="5" required="required">message</textarea>
<input type="submit" value="send"></form>
<!--Form ends here-->
</div>
<div class="pic-cv socials-outer">
<div id="socials" class="piccv-text">
<h6>Social</h6>
<div class="social-icons">
<p><a href="link.com" target="_blank"><i class="icon"></i></a></p>
<p><a href="link.com" target="_blank"><i class="icon"></i></a></p>
</div>
</div>
</div>
</div>
</section>
<!-- Contacts ends here -->
<p class="copyright"> Copyright © Name and Last Name</p>
</footer>
</body>
Комментарии:
1. скажите мне, помогло ли это ответить на ваш вопрос, @Pen061
2. это фантастическая работа @кукуруза в початках! Теперь это намного лучше! Я еще не начал работать с grid, поэтому я пытался достичь этого результата только с помощью flexbox, но, видимо, это невозможно. : (Я предполагаю, что необходимо внести лишь несколько незначительных изменений, пожалуйста, посмотрите на фотографии: ibb.co/J5qFRbq , ibb.co/6yth0Vc , ibb.co/c2BPFLF
3. не забудьте принять и проголосовать, если это было полезно 🙂 Я тоже новичок в grid, поэтому приятно слышать, что это работает
4. Новый комментарий просто для лучшего объяснения. Мобильный: фотография теперь отображается слишком маленькой и с текстом сбоку, в то время как текст должен быть той же длины, что и фотография, и отображаться ниже. Табличка: текст под фотографией слишком мал и должен быть той же длины, что и фотография. И, может быть, это все еще слишком широко? Возможно, я думал об уменьшении ширины… Рабочий стол: левый столбец, похоже, не выровнен по правому столбцу вверху … и, может быть, я бы уменьшил ширину формы, как вы думаете? 🙂
5. Да, это, вероятно, будет работать нормально, из-за того, как работает grid, он гибкий, так что это означает, что он должен работать 🙂