개발자는신이야
The first step
개발자는신이야
전체 방문자
오늘
어제
  • 분류 전체보기 (114)
    • 🍃웹개발 Spring (15)
    • ❓내 질문 (4)
    • 🔥웹개발종합반 (11)
    • 💻개인프로젝트 (5)
    • 😕error (2)
    • 💡알고리즘 (3)
    • 📖혼자공부하는자바 (22)
    • 📑WIL (2)
    • 🥸 CS 면접 스터디 (13)
    • 🤓천재교육 풀스택 1기 노트 (21)
    • ⏰정처기 공부 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • boot
  • Lombok
  • Java
  • 변수
  • CSS
  • API
  • dependencies
  • Spring
  • HTML
  • JPA
  • 기초
  • SQL
  • database
  • Controller
  • db
  • IntelliJ
  • repository
  • style
  • CRUD
  • jquery

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
개발자는신이야

The first step

❓내 질문

Q3. 두 줄 이상일 때 flex로 가운데 정렬 방법이 궁금해요!(display 충돌)

2022. 9. 9. 13:27

Question.

<!doctype html>
<div class="text1" id="text1">
    <h1>환영합니다.</h1>
</div>
<div class="text2" id="text2">
    <h1>example<br>sentence.</h1>
</div>
<div class="text3" id="text3">
    <h1><p>also</p>this is example text</h1>
</div>
</html>

 

<!doctype css>
.text1{
    display: flex;
    flex-direction: center;
    justify-content: center;
    align-items: center;
    }
</css>

text1의 경우 justify-content, align-items를 사용하여 상하,좌우 중앙에 배치가 되는데

 

<!doctype css>
.text3{ /*2도 동일*/
    max-width: 100vw;
    width: 80%;
    max-height: 100vh;
    height: 13%;

    background-color: rgba(244, 244, 255, 0.9);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

    border-radius: 200px;
    border: 20px solid white;

    display: flex;
    flex-direction: center;
    justify-content: center;
    align-items: center;

    text-align : center;

    box-shadow: 5px 5px grey;

    display: none;
}
</css>

text2와 3 같은 경우는 <p>나 <br> 어떤 것을 써서 줄 바꿈을 해도 좌우는 중앙에 배치되는데 상하가 위쪽으로 배치가 되네요.

text가 두 줄일 때 flex로 중앙에 배치 할 수 있는 방법이 있을까요?

 


 

Comment.

 

추가로 튜터님과 대화해보니 flex로 중앙에 배치가 가능하지만, display:none과 display:flex가 충돌하고 있어서 발생한 문제라는 것을 깨달았다.
(한 css 안에서 다른 타입의 display를 같이 사용하지 말자..)

 

 


Answer by 한지훈 튜터님.

 

해당의 경우에는 자바스크립트로 클래스를 변경하는 방법이 있습니다.


setTimeout(() => {
$( ".text3" ).removeClass( "text3-hidden" ).addClass( "text3" );
}, 1000)



위처럼 클래스를 2개 생성하시고 하나는 display: none 하나는 flex로 두개를 만들어 둡시다.


자바스크립트에서 페이지가 열리고 위의 경우엔 1초뒤에 text3-hidden 클래스가 사라지고 대신 test3라는 클래스가 붙게 됩니다.
https://api.jquery.com/addClass/


위 페이지에서 실습이 가능하니 한번 시도해보시고 적용해보시기 바랍니다 :)

 


배울점.

setTimeout(() => {
$( ".text3" ).removeClass( "text3-hidden" ).addClass( "text3" );
}, 1000)

1.

setTimeout() : 일회성 타이머 함수

function comment(){
alert("코멘트")
}

setTimeout(comment, 1000) //1초 뒤에 comment함수가 실행된다.

 

<div class="classname" id="idname"> 

2.

$(".classname"): .을 사용하면 class를 받아온다.

$("#idname"): #을 사용하면 id를 받아온다

 

3.

removeClass(): 클래스명을 삭제한다.

addClass(): 클래스명을 추가한다.

$( ".classid" ).removeClass("classname").addClass("classAdded") ->id가 classid인 div의 class는 classname에서 classAdded으로 변경됨


setTimeout(() => {
$( ".text3" ).removeClass( "text3-hidden" ).addClass( "text3" );
}, 1000)

즉.

$( ".text3" )

.text3라는 아이디를 가진 객체를

.removeClass( "text3-hidden" )

class="text3-hidden" 을 삭제하고,

.addClass( "text3" )

이후 text3 이라는 클래스를 생성해준다.

 

setTimeout(()=>{}, 1000)

1초 이후에.

 

'❓내 질문' 카테고리의 다른 글

Q4. 코드에 줄이 그여있어요.  (0) 2022.09.09
Q2. show() hide() 함수 질문드립니다  (0) 2022.09.09
Q1. css에서 사용한 요소가 무엇인지 모르겠어요  (0) 2022.09.09
    '❓내 질문' 카테고리의 다른 글
    • Q4. 코드에 줄이 그여있어요.
    • Q2. show() hide() 함수 질문드립니다
    • Q1. css에서 사용한 요소가 무엇인지 모르겠어요
    개발자는신이야
    개발자는신이야
    첫발을 내디딘 초보 개발자입니다.

    티스토리툴바