Что-то не так с моими css-тегами Flex?

#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. примите ответ