#html #css
Вопрос:
У меня возникли проблемы с css для проекта, потому что я обычно являюсь сторонним разработчиком. Я почти закончил со своим веб-приложением, потому что мне просто нужно разобраться с макетом карточки профиля, но, похоже, я не могу заставить flex работать. Я хочу, чтобы мои дивы были разделены по горизонтали, но, похоже, они остаются в одном столбце? Я перепробовал почти все, что мог придумать, я даже ссылался на видео на YouTube, и я все еще не могу заставить его работать. Извините, если я не могу объяснить это так хорошо, css на самом деле не моя сильная сторона, но я прикреплю файлы здесь. Спасибо!
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600');
*{
margin: 0px;
padding: 0px;
box-sizing: border-box;
font-family: 'Montserrat', sans-serif;
}
html, body{
background: #f6f5f7;
width: 100%;
overflow: auto;
}
header{
position: absolute;
top: 0px;
left: 0px;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 100px;
z-index: 10;
background: #243665;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
header #header-name{
position: relative;
font-size: 1.5em;
color: #FFFFFF;
text-decoration: none;
font-weight: 600;
white-space: nowrap;
}
.container {
display: flex;
flex-wrap: wrap;
max-width: 800px;
margin: 100px auto;
padding: 25px;
}
.container input[type="radio"]{
display: none;
}
.container label{
padding: 20px;
background: #243665;
font-weight: 600;
min-width: 120px;
text-align: center;
color: #FFFFFF;
border-radius: 5px 5px 0 0;
order: 0;
}
.container .tab{
display: flex;
flex-direction: column;
width: 100%;
padding: 20px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
text-align: center;
order: 1;
display: none;
}
.profile-image{
border-radius: 50%;
border: 4px solid #243665;
}
.profile-name{
font-weight: 600;
}
.profile-hobbies{
margin: 0;
}
.profile-name::after{
content: "";
display: block;
height: 1px;
width: 2em;
background: #243665;
margin: 0.5em auto;
}
.container input[type='radio']:checked label .tab {
display: block;
}
.container input[type='radio']:checked label{
background: #8BD8BD;
}
footer{
position: absolute;
bottom: 0;
background: #DDDCDE;
justify-content: space-between;
align-items: center;
padding: 20px 100px;
z-index: 10;
}
.footer{
display: flex;
box-sizing: border-box;
width: 100%;
text-align: left;
margin-top: 80px;
}
.footer .footer-content{
display: inline-block;
vertical-align: top;
width: 30%;
}
.footer h3{
margin: 0;
}
.footer .footer-strings{
margin: 20px 0 12px;
display: inline-block;
line-height: 1.8;
text-decoration: none;
}
.footer-box .about-content{
margin: 20px 0 0 0;
}
@media (max-height:800px){
footer {
position: static;
}
}
@media (max-width: 880px) {
header{
flex-direction: column;
}
.footer .footer-content{
display: block;
width: 100%;
margin-bottom: 40px;
text-align: center;
}
}
@media (min-width: 850px){
.tab{
flex-direction: row;
}
}
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@ page import="java.util.*" %>
<html>
<link href="styles/PortfolioStyle.css" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css"/>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Portfolio</title>
</head>
<header>
<div id="header-name">
<i class="fas fa-laptop-code"></i>
<%
out.println(getServletContext().getInitParameter("header"));
%>
</div>
</header>
<body>
<div class="container">
<input type="radio" id="mark" name="my-tabs" checked="checked">
<label for="mark">Mark</label>
<div class="tab">
<div class="image-tab">
<img src="styles/mark.png" class="profile-image">
</div>
<div class="main-tab">
<h2 class="profile-name"></h2>
<p class="profile-info"></p>
<p class="profile-hobbies">
<%
List mark = (List)request.getAttribute("mHobbies");
Iterator mIt = mark.iterator();
while (mIt.hasNext())
{
out.print(" " mIt.next());
}
%>
</p>
</div>
</div>
<input type="radio" id="kazu" name="my-tabs">
<label for="kazu">Kazuyoshi</label>
<div class="tab">
<div class="card" id="kazu-card">
<h2>Kazuyoshi</h2>
<p>
<%
List kazu = (List)request.getAttribute("kHobbies");
Iterator kIt = kazu.iterator();
while (kIt.hasNext())
{
out.print("<br>" kIt.next());
}
%>
</p>
</div>
</div>
</div>
</body>
<footer class="footer">
<div class = "footer-content">
<i class="fas fa-laptop-code fa-2x" ></i>
<h2>
<%
out.println(getServletContext().getInitParameter("footer"));
%>
</h2>
<p class="footer-strings">
<%
out.println(getServletContext().getInitParameter("footer1"));
%>
<br>
<%
out.println(getServletContext().getInitParameter("footer2"));
%>
<br>
<%
out.println(getServletContext().getInitParameter("footer3"));
%>
<br>
</p>
</div>
</footer>
</html>
Ответ №1:
дивы являются элементами уровня блока, они занимают все доступное пространство по горизонтали, вы должны указать «display:flex» в родительском разделе, чтобы дочерние дивы не занимали все доступное пространство. также
<div class="parent">
<div class="child1">1</div>
<div class="child2">2</div>
<div class="child3">2</div>
</div>
по умолчанию это будет выглядеть так
1
2
3
но если бы вы использовали
.parent{
display:flex;
}
это будет похоже на
1 2 3
Комментарии:
1. также нет необходимости делать css в «.header #имя заголовка», используйте можете написать весь свой css в самом классе .header, и позиция:относительно #заголовка также абсурдна, используйте позицию:относительно тела
2. примите ответ