스크롤바가 움직일 때 해당 영역을 표시해 주는 기능

px로 영역지정이 가능하다(그것은 body태그 안 에다가 구현 ) ! 오호라

nav와 연동해서 씀!!

nav에서 a태그의 href="" 와 컨텐츠가 들어가는 div의 id="" 가 바인딩 되어 구현 됨 !

 

    <body  data-spy="scroll" data-target=".navbar" data-offset="50">  <!--data-offset는 스크롤 시작 위치!-->
    <!---여긴 nav영역---->
    <nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">  
        <ul class="navbar-nav">
          <li class="nav-item">
            <a class="nav-link" href="#section1">Section 1</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#section2">Section 2</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#section3">Section 3</a>
          </li>
          <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="navbardrop" data-toggle="dropdown">
              Section 4
            </a>
            <div class="dropdown-menu">
              <a class="dropdown-item" href="#section41">Link 1</a>
              <a class="dropdown-item" href="#section42">Link 2</a>
            </div>
          </li>
        </ul>
      </nav>
        
     <!---여긴 컨탠츠 div영역---->   
    <div id="section1" class="container-fluid bg-success" style="padding-top:70px;padding-bottom:70px">
        <h1>Section 1</h1>
        <p>Try to scroll this section and look at the navigation bar while scrolling! Try to scroll this section and look at the navigation bar while scrolling!</p>
        <p>Try to scroll this section and look at the navigation bar while scrolling! Try to scroll this section and look at the navigation bar while scrolling!</p>
    </div>
    <div id="section2" class="container-fluid bg-warning" style="padding-top:70px;padding-bottom:70px">
        <h1>Section 2</h1>
        <p>Try to scroll this section and look at the navigation bar while scrolling! Try to scroll this section and look at the navigation bar while scrolling!</p>
        <p>Try to scroll this section and look at the navigation bar while scrolling! Try to scroll this section and look at the navigation bar while scrolling!</p>
    </div>
    <div id="section3" class="container-fluid bg-secondary" style="padding-top:70px;padding-bottom:70px">
        <h1>Section 3</h1>
        <p>Try to scroll this section and look at the navigation bar while scrolling! Try to scroll this section and look at the navigation bar while scrolling!</p>
        <p>Try to scroll this section and look at the navigation bar while scrolling! Try to scroll this section and look at the navigation bar while scrolling!</p>
    </div>
    <div id="section41" class="container-fluid bg-danger" style="padding-top:70px;padding-bottom:70px">
        <h1>Section 4 Submenu 1</h1>
        <p>Try to scroll this section and look at the navigation bar while scrolling! Try to scroll this section and look at the navigation bar while scrolling!</p>
        <p>Try to scroll this section and look at the navigation bar while scrolling! Try to scroll this section and look at the navigation bar while scrolling!</p>
    </div>
    <div id="section42" class="container-fluid bg-info" style="padding-top:70px;padding-bottom:70px">
        <h1>Section 4 Submenu 2</h1>
        <p>Try to scroll this section and look at the navigation bar while scrolling! Try to scroll this section and look at the navigation bar while scrolling!</p>
        <p>Try to scroll this section and look at the navigation bar while scrolling! Try to scroll this section and look at the navigation bar while scrolling!</p>
    </div>
해보기!

Scrollspy.html
0.00MB

 

'학원 > BS(부트스트랩4)' 카테고리의 다른 글

11/17 45-4 [BS] Popover  (0) 2022.11.17
11/17 45-3 [BS] Modal  (0) 2022.11.17
11/17 45-2 [BS] Carousel  (0) 2022.11.17
11/17 45-1 [BS] Custom Forms  (0) 2022.11.17
11/16 44-5 [BS] Form Inputs  (1) 2022.11.16

Popover : 클릭하면 작은 말풍선이 뜬 다 !

 

 

1. Basic : 토글로 클릭해서 생겼다 지웠다 반복

                title과 content 부분이 있다! 

  <h2>Basic Popover</h2>
  <a href="#" class='btn btn-success' data-toggle="popover" title="비밀" data-content="임금님귀 당나귀귀!!!!">Toggle popover</a>

 

 

2. 자바로 구현 및 popover 위치 다양하게 설정하기!

 ++ popover 토글토글할 때 기본적으로 버튼을 눌러야 적용이 되는데 

      트리거 속성 추가하면 data-trigger="focus" 요거 넣으면 그냥 아무데나 클릭 해도 popover는 사라진다 !

++  한김에 더 추가로  data-trigger="hover" 를 넣으면 마우스 오버로 popover 생김 !!

        <h2>Positioning Popovers</h2>
        <a href="#" data-placement="top" class='btn btn-success' data-toggle="popover" title="비밀1" data-content="여긴 위지!" data-trigger="focus">TOP(FOCUS)</a>
        <a href="#" data-placement="bottom" class='btn btn-info' data-toggle="popover" title="비밀2" data-content="여긴 아래지!" data-trigger="hover">BOTTOM(HOVER)</a>  
        <a href="#" data-placement="Left" class='btn btn-warning' data-toggle="popover" title="비밀4" data-content="여긴 왼쪽!">LEFT</a>
        <a href="#" data-placement="right" class='btn btn-dark' data-toggle="popover" title="비밀3" data-content="여긴 오른쪽!">RIGHT</a>
                
    <script>
        $(document).ready(function(){
            $('[data-toggle="popover"]').popover();
            //반드시!!!! 태그의 data-* 속성 및 자바스크립트와 함께 구현해야 한다.
            // 그래서 위에 data-placement="" 가 들어가 있음 !!
    	});
    </script>

 

 

3. 자바스크립트로만 구현하기 !!
코드 보면 a태그에 있던 중요부분들 다 빠짐!! 자바스크립트로만 해서 구현한거임 와우.... 
anmation은 버튼 클릭 하고 나서 지정한 시간 있다가 나타남
html구현도 추가하면 가능함
   <h2>자바스크립트로 구현</h2>
        <a href="#" class='btn btn-success top-popover'>TOP(focus)</a>
        <a href="#" class='btn btn-info bottom-popover'>BOTTOM(hover)</a>
        <a href="#" class='btn btn-dark right-popover'>RIGHT</a>
        <a href="#" class='btn btn-warning left-popover'>LEFT</a>      
   <script>
    $(document).ready(function(){
        $('.top-popover').popover({title:'위쪽',placement:'top',content:'위쪽에 보이는 팝오버!',trigger:'focus'});
        $('.bottom-popover').popover({title:'아래쪽',placement:'bottom',content:'아래쪽에 보이는 팝오버!',trigger:'hover'});
        $('.left-popover').popover({title:'왼쪽',placement:'left',content:'<strong>왼쪽</strong>에 보이는 팝오버!',html:true,animation:true,delay:{show: 300, hide: 100}});      
        $('.right-popover').popover({title:'오른쪽',placement:'right',content:'오른쪽에 보이는 팝오버!'});
    });
    </script>

'학원 > BS(부트스트랩4)' 카테고리의 다른 글

11/17 45-5 [BS] Scrollspy  (0) 2022.11.17
11/17 45-3 [BS] Modal  (0) 2022.11.17
11/17 45-2 [BS] Carousel  (0) 2022.11.17
11/17 45-1 [BS] Custom Forms  (0) 2022.11.17
11/16 44-5 [BS] Form Inputs  (1) 2022.11.16

자바스크립트에서 그 모달창 맞음!

여기서 모달창이 더 이뻐요 !!

 

이거도 크게 우선 보면 

open(모달 열게하는 버튼이 필요하겠지!)/

Modal(모달을 크게 제어함) /

Header(모달 위쪽 그 x 표시 있는 거!)/

body(모달 / 알림으 내용 표시) /

footer(끝쪽! 닫기버튼 있느느 곳!)

 

1.Add animation,size,Centered Modal 이거 한꺼번에 걍 다 구현 가능!

 <!-- Button to Open the Modal -->
        <button class="btn btn-primary" data-toggle="modal" data-target="#myModal">
             모달열기
        </button>
  
        <!-- The Modal -->
        <div class="modal fade" id="myModal">         
            <div class="modal-dialog modal-dialog-centered">   <!--정 가운데에 뜸-->        
                   <!---모달 크기 설정  defaault는 mid
            <div class="modal-dialog modal-xl">
                    -->
                <div class="modal-content">

                    <!-- Modal Header -->
                    <div class="modal-header">
                        <h4 class="modal-title">모달 헤더입니다</h4>
                        <button type="button" class="close" data-dismiss="modal">&times;</button>
                    </div>
                    
                    <!-- Modal body -->
                    <div class="modal-body">
                         모달 내용을 작성
                    </div> 
                    
                    <!-- Modal footer -->
                    <div class="modal-footer">       
                    <button type="button" class="btn btn-danger" data-dismiss="modal">닫기</button>     
                    </div>
                </div>
            </div>
        </div>

 

2.자바스크립트로 모달창 열기

다 귀찮아서 body만 남겨둠 

JQuery 쓰는거 잘 봐둬...

	    <h2>자바스크립트로 모달창 열기</h2>
        <div class="modal fade" id="jsModal">         
            <div class="modal-dialog modal-dialog-centered">         
             <div class="modal-content">  
              <div class="modal-body">           
                <div class="d-flex justify-content-end" >  <!-- X버튼 오른쪽 배치를 위한 추가-->         
                    <button class="btn btn-danger" data-dismiss="modal">&times;</button>  
                </div>          
                <h3>공지사항입니다. <small>notice</small></h3>
                <p>Change the size of the modal by adding the .modal-sm class for small modals, 
                 .modal-lg class for large modals, or .modal-xl for extra large modals.                   
                </p>                       
              </div>
             </div>
           </div> 
        </div>       
        <button class="btn btn-primary" id="jsButton">자스로 모달 띄우기</button>        
    </div> 
   
   <script>
        $('#jsButton').click(function(){
            $('#jsModal').modal({backdrop:"static"});
        });
    </script>

'학원 > BS(부트스트랩4)' 카테고리의 다른 글

11/17 45-5 [BS] Scrollspy  (0) 2022.11.17
11/17 45-4 [BS] Popover  (0) 2022.11.17
11/17 45-2 [BS] Carousel  (0) 2022.11.17
11/17 45-1 [BS] Custom Forms  (0) 2022.11.17
11/16 44-5 [BS] Form Inputs  (1) 2022.11.16

오 잘 쓰면 이거 멋있음 !!!!

근데... 예시 사진이 ...... 

 

크게 구간은3구간으로 나뉨

Indicators(데이터들 연결)  /  The slideshow (사진업로드)  / Left and right controls(좌우 이동아이콘)

 

	    <div class="d-flex justify-content-center">  <!--- 가운데 정렬하기위해 div로 한 번 더 감싸기-->
        <div id="landscape" class="carousel slide w-100 h-75 " data-ride="carousel">

            <!-- Indicators -->
            <ul class="carousel-indicators">
              <li data-target="#landscape" data-slide-to="0" class="active"></li>
              <li data-target="#landscape" data-slide-to="1"></li>
              <li data-target="#landscape" data-slide-to="2"></li>
              <li data-target="#landscape" data-slide-to="3"></li>
            </ul>
          
            <!-- The slideshow -->
            <div class="carousel-inner ">
              <div class="carousel-item active">  <!---사진크기 다를 때 style로 지정하세요 !!!...-->
                <img src="images/1.jpg" alt="풍경사진1" style="width:100%; height:500px;">
                <div class="carousel-caption">
                    <h3>첫 번째 풍경사진</h3>
                    <p>봄봄봄봄</p>
                </div>
              </div>
              <div class="carousel-item">
                <img src="images/2.jpg" alt="풍경사진2" style="width:100%; height:500px;" >
                <div class="carousel-caption">
                    <h3>두 번째 풍경사진</h3>
                    <p>여름여름여름</p>
                </div>
              </div>
              <div class="carousel-item">
                <img src="images/3.jpg" alt="풍경사진3" style="width:100%; height:500px;">
                <div class="carousel-caption">
                    <h3>세 번째 풍경사진</h3>
                    <p>가을가을가을</p>
                </div>
              </div>
              <div class="carousel-item">
                <img src="images/4.jpg" alt="풍경사진4" style="width:100%; height:500px;">
                <div class="carousel-caption">
                    <h3>네 번째 풍경사진</h3>
                    <p>겨울겨울겨울</p>
                </div>
              </div>
            </div>
          
            <!-- Left and right controls -->
            <a class="carousel-control-prev" href="#landscape" data-slide="prev">
              <span class="carousel-control-prev-icon"></span>
            </a>
            <a class="carousel-control-next" href="#landscape" data-slide="next">
              <span class="carousel-control-next-icon"></span>
            </a>         
          </div>
        </div>
해보기

Carousel.html
0.00MB

 

안돼안돼 구현이 안돼 서러워 

'학원 > BS(부트스트랩4)' 카테고리의 다른 글

11/17 45-4 [BS] Popover  (0) 2022.11.17
11/17 45-3 [BS] Modal  (0) 2022.11.17
11/17 45-1 [BS] Custom Forms  (0) 2022.11.17
11/16 44-5 [BS] Form Inputs  (1) 2022.11.16
11/16 44-4 [BS] Forms  (1) 2022.11.16

form요소들을 나름 커스터마이징(?)해서 사용할 수 있다!!

*** 공통적용 : 레이블,id는 필수 !! 없으면 해당 요소들이 사라져버리고 기능도 안 됨 !!

 

1. Custom Checkbox

체크박슨데 조금 다름

         <form>
            <h2>Custom Checkbox</h2>
            <div class="custom-control custom-checkbox">
              <input type="checkbox" class="custom-control-input" id="customCheck" >
              <label class="custom-control-label" for="customCheck">Check this custom checkbox</label>                        
            </div>
        </form>

 

2.Custom Switch  : 

  체크박스를 스위치로 변경 !!

   <form>
          <h2>Custom Switch</h2>
          <div class="custom-control custom-switch">
            <input type="checkbox" class="custom-control-input" id="switch1">
            <label class="custom-control-label" for="switch1">Toggle me</label>
          </div>
   </form>

 

3.Custom Radio buttons  

대체 뭐가 다른건가 싶지만 다름

   <form>       
          <h2>Custom Radio buttons</h2>
          <div class="custom-control custom-radio">
            <input type="radio" class="custom-control-input" id="customRadio">
            <label class="custom-control-label" for="customRadio">Custom radio</label>
          </div>
   </form>

 

 

4.Inline Custom Form Controls

<form>          
          <h2>Inline Custom Form Controls</h2>
          <div class="custom-control custom-checkbox custom-control-inline">
            <input type="checkbox" class="custom-control-input" id="customCheck1" >
            <label class="custom-control-label" for="customCheck1">선택1</label>                        
          </div>
          <div class="custom-control custom-checkbox custom-control-inline">
            <input type="checkbox" class="custom-control-input" id="customCheck2" >
            <label class="custom-control-label" for="customCheck2">선택2</label>                        
          </div>
          <div class="custom-control custom-checkbox custom-control-inline">
            <input type="checkbox" class="custom-control-input" id="customCheck3" >
            <label class="custom-control-label" for="customCheck3">선택3</label>                        
          </div>
</form>

 

5.Custom Select Menu

   선택메뉴!! 이건 w-auto로 주면 가로배치가 되기 때문에 div로 한 번 더 감싸준다 !

   <form>    
       <div>
          <h2 >Custom Select Menu</h2>
          <select name="cars" class="custom-select w-auto">
            <option selected>Custom Select Menu</option>
            <option value="volvo">Volvo</option>
            <option value="fiat">Fiat</option>
            <option value="audi">Audi</option>
          </select>
                </div>
   </form>

 

 

6.Custom Range

  얘는 lable 지워도 됨 !!!

  <form>      
        <h2>Custom Range</h2> 
         <div>
            <input type="range" class="custom-range w-50">
        </div>
  </form>

 

 

7.Custom File Upload

  이건!! jQuery를 같이 사용해야 완벽하게 구현된다!

        <h2>Custom File Upload</h2>
        <div class="custom-file  w-auto">
            <input type="file" class="custom-file-input" id="customFile">
            <label class="custom-file-label" for="customFile">파일을 선택하세요</label>
        </div>
         <script>
          $(".custom-file-input").on("change", function() {
            console.log($(this).val());  //   C:\fakepath\다운로드.png
            console.log($(this).val().split("\\"));  // Array(3) [ "C:", "fakepath", "다운로드.png" ] 배열로 나오넴!!
        	var fileName = $(this).val().split("\\").pop();  // pop으로 꺼내옴!              
        	$(this).siblings().addClass("selected").html(fileName); //$(this).siblings(선택자는생략가능) 이 뜻은  this의 형제들 중에서 선택자인 놈 하나만 선택한다
            });
         </script>

  --> 바닐라버전

    <script>
		var file = document.querySelector('.custom-file-input');  
          file.onchange=function(){
            	console.log(this.value);
                var fileName = this.value.split('\\').pop();  
                var label = this.nextElementSibling;
             // label.innerHTML = fileName;  이거 써도 됨 ! 
                label.textContent = fileName;
            };                             
    </script>

 

 

'학원 > BS(부트스트랩4)' 카테고리의 다른 글

11/17 45-3 [BS] Modal  (0) 2022.11.17
11/17 45-2 [BS] Carousel  (0) 2022.11.17
11/16 44-5 [BS] Form Inputs  (1) 2022.11.16
11/16 44-4 [BS] Forms  (1) 2022.11.16
11/16 44-3 [BS] Navigation Bar  (0) 2022.11.16

form요소 있는 다양한 input 태그들!

 

1. checkbox  : div에 form-check 요소 넣고 label 에 form-check-label  그리고 input을 label로 감싸줌 !!!

        <h2> Checkboxes </h2>
        <div class="form-check">
            <label class="form-check-label">
              <input type="checkbox" class="form-check-input" value="">Option 1
            </label>
          </div>
          <div class="form-check">
            <label class="form-check-label">
              <input type="checkbox" class="form-check-input" value="">Option 2
            </label>
          </div>
          <div class="form-check">
            <label class="form-check-label">
              <input type="checkbox" class="form-check-input " value="" disabled >Option 3 
                         <!-- disabled이건 꼭 태그의 속성으로 줘야함! class에 넣으면 적용 안 됨! -->
            </label>
        </div>

 

2. Inline Checkboxes

이번엔 인라인형태의 체크박스 !! 동일한데 마지막에 inline만 붙여 준다 !

        <h2>Inline Checkboxes</h2>
        <div class="form-check-inline">
            <label class="form-check-label">
              <input type="checkbox" class="form-check-input" value="">Option 1
            </label>
          </div>
          <div class="form-check-inline">
            <label class="form-check-label">
              <input type="checkbox" class="form-check-input" value="">Option 2
            </label>
          </div>
          <div class="form-check-inline">
            <label class="form-check-label">
              <input type="checkbox" class="form-check-input " value="" disabled >Option 3 
            </label>
        </div>

 

 *** radio버튼은 checkbox와 동일함 !

 

 

3.Select List  : 선택박스!

역시 div인데 form-group으로 요소 넣고 label select 태그의 아이디명과 동일하게 줘야 함 ! 그래야 바인드 됨 !

       <h2>Select List</h2>
        <div class="form-group">
            <label for="sel1">Select list:</label>
            <select class="form-control" id="sel1">  <!---아이디로 바인딩!-->
              <option>1</option>
              <option>2</option>
              <option>3</option>
              <option>4</option>
            </select>
          </div>

 

4.Form Control Sizing

  박스의 세로( form-control- * )와 박스 가로폭( w-* )조절

      <!--이건 크기비교용--> 
      <input type="text" class="form-control form-control-sm w-auto">  <!--auto는 해상도 상관없이 박스기본크기 유지-->
      <input type="text" class="form-control form-control w-25">
      <input type="text" class="form-control form-control-lg w-50" >
      
      <!--이건 선택박스-->
      <select class="form-control w-auto">
           <option>학력을 선택하세요</option>
           <option>초등학교</option>
           <option>중학교</option>
           <option>고등학교</option>
           <option>대학교</option>
      </select>
      
      <!--이건 text박스-->
      <textarea class="form-control w-75" row="5" ></textarea>

 

5. Form Control File and Range

   이거 파일 링크거는거랑 오디오에서 볼륨 조절 하는거..

  이거도 폼 요소 !!   코드 잘 익히기!

그리고 auto 설정 했을 때 사이즈 잘 봐두기 !

           <h2>Form Control File and Range</h2>
            <input type="range" class="form-control-range">
            <input type="range" class="form-control-range w-auto ">
            <input type="file" class="form-control-file border border-info">
            <input type="file" class="form-control-file border border-info w-auto">

 

전체적으로 해보기!

FormInputs.html
0.00MB

'학원 > BS(부트스트랩4)' 카테고리의 다른 글

11/17 45-2 [BS] Carousel  (0) 2022.11.17
11/17 45-1 [BS] Custom Forms  (0) 2022.11.17
11/16 44-4 [BS] Forms  (1) 2022.11.16
11/16 44-3 [BS] Navigation Bar  (0) 2022.11.16
11/16 44-2 [BS] Navs  (0) 2022.11.16

자스에서도 여러가지 Form 태그 정리한것처럼

부트스트랩에서도 form은 중요한가봄

정리해보자!

 

 

1.Stacked Form  :

  사이트 로그인하는 화면  보면 아이디랑 비밀번호 치는 곳이

  수직으로 쌓여있음 ! 그렇게 만들거

   div로 묶는데 class를 form-group으로 해서 묶을 거!! 그냥 div로 묶으면 수평 정렬이 되버린다 !!

  텍스트와 input상자와의 바인딩을 위해 id명을 역시 넣어준다 !!

        <h2>Stacked Form</h2>
        <form>
            <div class="form-group">
                <label for="username">아이디</label>
                <input type="text" class="form-control" placeholder="아이디를 입력하세요" id="username">
            </div>
            <div class="form-group">
                <label for="password">비밀번호</label>
                <input type="password" class="form-control" placeholder="비밀번호를 입력하세요" id="password">
            </div>
            <div class="form-group form-check">
                <label class="form-check-label">  <!---lable로 input을 감싸야 함 -->
                   <input class="form-check-input" type="checkbox"> 기억
                </label>
            </div>
            <button type="submit" class="btn btn-primary">확인</button>
        </form>

 

 

2.Inline Form 

  수평으로 배열 해볼거임 ! 

      <h2>Inline Form</h2>
      <form class="form-inline">  <!--form-inline 인라인으로 배열하는거  
                 div class="form-group"이 없음.... 없으면 인라인으로 배치 되는군! -->
          <label for="id" class="mr-2">아이디</label>  
          <input type="text" class="form-control mr-2" placeholder="아이디" id="id">
          <label for="pwd" class="mr-2">비밀번호</label>
          <input type="password" class="form-control mr-2" placeholder="비밀번호" id="pwd">
          <div class="form-check mr-2">
              <label class="form-check-label">
                 <input class="form-check-input" type="checkbox"> 기억
              </label>
           </div>
              <button type="submit" class="btn btn-primary">확인</button>
      </form>

 

 

3.Form Validation

유효성 체크하기 ! 
  form 태그에 was-validated 혹은 needs-validattion클래스를 추가하여 폼의 유효성 체크하기
  방법1. was-validated : 제출 전 유효성 체크 , form 요소에 class="was-validated" 추가! 
  방법2. needs-validattion : 제출 후 유효성 체크 , form 요소에 class="needs-validattion" 추가!    
  required를 추가 해야 유효성 체크기능 생김!  속성에 novalidate하면 무시되고 걍 제출 됨

 

  3-1 was-validated 클래스

 <form action="https://www.w3schools.com" class="was-validated"  >  <!--form 요소에 class="was-validated"-->
       <div class="form-group">
           <label for="username_">아이디</label>
           <input type="text" class="form-control" placeholder="아이디를 입력하세요" id="username_" required>
           <div class="valid-feedback">유효한 아이디 입니다.</div>
           <div class="invalid-feedback">아이디를 입력하세요.</div>
       </div>
       <div class="form-group">
           <label for="password_">비밀번호</label>
           <input type="password" class="form-control" placeholder="비밀번호를 입력하세요" id="password_" required>
           <div class="valid-feedback">유효한 비밀번호 입니다.</div>
           <div class="invalid-feedback">비밀번호를 입력하세요.</div>
       </div>
       <div class="form-group form-check"> <!--뒤에서 나오는건데 form-check만 해도 블락E 배치됨 -->
            <label class="form-check-label">  <!---lable로 input을 감싸야 함 -->
                <input class="form-check-input" type="checkbox" required> 기억
                <div class="valid-feedback">thank you</div>
                <div class="invalid-feedback">체크하세요!</div>
            </label>
         </div>
         <button type="submit" class="btn btn-primary">확인</button>
  </form>


잠시 JQury 를 왜 들어갔는지 모르겠는데.... 맛보기..... 

배경색 토글링 하기!!

     /*DOMTokenList 타입으로 해당 요소의 클래스 목록을 담고 있는 객체
        DOMTokenList타입의 메소드로 해당요소에 클래스를 쉽게 추가하거나 제거하거나 토글링 ok
        add('클래스명') : 추가
        remove('클래스명') : 클래스 삭제
        toggle('클래스명') : add()와 remove() 사용
        */
      var jumbotron = document.querySelector('.jumbotron');
      console.log(jumbotron.classList);  //DOMTokenList [ "jumbotron", "bg-warning" ]
      console.log(jumbotron.className);  //jumbotron bg-warning
        //점보트론을 클릭 할 때마다 배경색이 토글링되도록 함
        //classList의 메소드 사용
      jumbotron.onclick=function(){
        jumbotron.classList.toggle('bg-warning');  //''에는 추가해야 할 것을 넣어줘야되네!!
        console.log(jumbotron.classList);
    }
직접해보기!

  3-2. needs-validation 클래스  : 이거 그냥 쓰면 저렇게 내가만든 feedback이 안뜨고 기본알림 상자가 뜸..

         기껏 만들었는데 재미없음 

         그래서 자바스크립트로 내가 만든 feedback이 뜨도록 만들 것임 !

         내가만든 유효성을 쓰려면 여기선 jqury를 써서 처리해야 함
         classList 요거 쓸건데 잘 알아둬 !!!
        아!!! 그냥 사용할 땐 form 요소에 novalidate는 뺀다 !! 안그럼 그냥 제출되어버림 !

 

       <h4>needs-validation 클래스</h4>
       <form action="https://www.w3schools.com" class="needs-validation" novalidate > <!--form 요소에 class="needs-validation"-->
          <div class="form-group">
          	 <label for="username__">아이디</label>
             <input type="text" class="form-control" placeholder="아이디를 입력하세요" id="username__" required>
              <div class="valid-feedback">유효한 아이디 입니다.</div>
              <div class="invalid-feedback">아이디를 입력하세요.</div>
          </div>
          <div class="form-group">
              <label for="password__">비밀번호</label>
              <input type="password" class="form-control" placeholder="비밀번호를 입력하세요" id="password__" required>
              <div class="valid-feedback">유효한 비밀번호 입니다.</div>
              <div class="invalid-feedback">비밀번호를 입력하세요.</div>
          </div>
          <div class="form-group form-check">
              <label class="form-check-label">  <!---lable로 input을 감싸야 함 -->
                  <input class="form-check-input" type="checkbox" required> 기억
                  <div class="valid-feedback">thank you</div>
                  <div class="invalid-feedback">체크하세요!</div>
              </label>
          </div>
          <button type="submit" class="btn btn-primary">확인</button>
       </form>        

    <script>
     //needs-validation 클래스 코드 (valid/invalid메시지 뿌리기)
    var form = document.querySelector('.needs-validation');
     //폼의 모든 클래스목록 출력 
    form.classList.forEach(function(className){
        console.log(className)
    });
     //폼 객체의 checkValidity()메소드
    form.onsubmit=function(){
           //폼에 novalidate 추가해야 submit이벤트 발생 why? required속성에 의해 유효하지 않은 경우 submit이벤트가 취소 됨... 
        console.log(form.checkValidity());
        if(!form.checkValidity()){
            form.classList.add('was-validated');
            return false; // submit 이벤트 취소
        }
    };
    </script>
직접해보기!

test1.html
0.00MB

'학원 > BS(부트스트랩4)' 카테고리의 다른 글

11/17 45-1 [BS] Custom Forms  (0) 2022.11.17
11/16 44-5 [BS] Form Inputs  (1) 2022.11.16
11/16 44-3 [BS] Navigation Bar  (0) 2022.11.16
11/16 44-2 [BS] Navs  (0) 2022.11.16
11/16 44-1 [BS] Collapse_2  (0) 2022.11.16

사이트 보면 맨~~~ 상단에 있는 메뉴 바 !

nav태그를 이용한다 !! 오 처음보는 태그 !!!

기본 틀 !!

<nav class="navbar navbar-expand-sm >

   <ul class="navbar-nav">

        <li class="nav-item">

        </li>

   </ul>

</nav>

 

< nav >

맨 상단에 배치되기 때문에 nav태그는  container 혹은 container-fluid 위에다가 넣는다!

navbar-expand-sm 이거 제거하면 수직정렬(수직이 기본인가봄)
해상도 적어지면 자동 수직 정렬

네이게이션바의 배경색은 bg-색깔명 으로 설정하고 
텍스트메뉴는 navbar-dark/light 로 지정(두 개밖에 없음)

 

 

      <nav class="navbar navbar-expand-sm bg-dark navbar-dark">  <!--글자랑 배경이랑 비슷한 계열로 하려면 bg-dark navbar-dark 같이 줘야 함 -->
        <ul class="navbar-nav">  <!---ul로 묶으면 블릿생기고 수직정렬인데 "navbar-nav" 넣어서 블릿제거&인라인으로 만든다!--->
          <li class="nav-item">
            <!--로고/img넣기-->
                 <!-- 얘는 그냥 글자를 넣은거고 
            <a class="navbar-brand" href="#">KOSMO</a>
            --->
                 <!--요건 img넣은거 -->
            <a class="navbar-brand " href="#">
              <img src="images/logo.png" alt="로고이미지" style="width:70px;"/>
            </a>
          </li>
          <li class="nav-item">  <!--메뉴들 !!-->
            <a class="nav-link" href="#">Link 1</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#">Link 2</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#">Link 3</a>
          </li>
        </ul>      
      </nav>

    <div class="container">
        <div class="jumbotron bg-info">
            <h1>Navigation Bar</h1>
            <p>Basic Navbar</p>
        </div>
           <!----여기에 컨텐츠들을 넣는다 죽죽죽!----->
    </div>


저 bar에 이것저것 추가 추가 !! 

(메뉴에 더보기 기능추가 , 검색기능추가, 그냥 일반텍스트도 추가 가능!!)

해상도가 작아지면 말로만 듣던 삼발이 생성도 되게 할거임 !!

삼발이랑 메뉴랑의 바인드를 위해서 

메뉴 <div id=" 이름 "> id명으로 바인드!! 꼭 필요 !! 

<nav class="navbar navbar-expand-md bg-secondary navbar-dark">
        <!-- 로고넣기 -->  
            <a class="navbar-brand " href="#">
              <img src="images/logo.png" alt="로고이미지" style="width:70px;"/>
            </a>      
      
        <!-- Toggler/collapsibe Button 이게 삼발이기능이구나!!!! -->
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
          <span class="navbar-toggler-icon"></span>  <!-- 이게 삼발이 !!-->
        </button>
      
        <!-- Navbar links ,, bar안의 메뉴들 !! -->
        <div class="collapse navbar-collapse" id="collapsibleNavbar">
                    <!-- navbar text랑 여백 주기위해 mr-3 추가함-->
            <ul class="navbar-nav mr-3">
            <li class="nav-item">
              <a class="nav-link" href="#">Link1</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Link2</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Link3</a>
            </li>
            <li class="nav-item dropdown"> <!-- 더보기 기능 추가!!-->
                <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown">
                  Dropdown link
                </a>
                <div class="dropdown-menu">
                  <a class="dropdown-item" href="#">Link 1</a>
                  <a class="dropdown-item" href="#">Link 2</a>
                  <a class="dropdown-item" href="#">Link 3</a>
                </div>
              </li>
              <li class="nav-item"> <!-- 검색 기능 추가!!-->
                <form class="form-inline" action="#">
                    <input class="form-control mr-sm-2" type="text" placeholder="검색어 입력">
                    <button class="btn btn-success" type="submit">검색</button>
                  </form>
              </li>
          </ul>
           <!-- Navbar text(걍 일반 텍스트임)-->
            <span class="navbar-text">
                메뉴 아닌 텍스트
            </span>
        </div>
      </nav>
      
    <div class="container">
         <!--여백 조절을 위해 mt-n1 이거 추가 됨-->
        <div class="jumbotron bg-info mt-n1">
            <h1>Navigation Bar</h1>
            <p>Collapsing The Navigation Bar</p>
        </div>

    </div>

해상도높을 때
해상도 낮을 때 !! 삼발이당!!!!!

 


오!! 뭔가 사이트 같음!! 근데 문제는 저 상단 메뉴가 

안에 컨텐츠가 많아져서 스크롤바가 생겨서 내려가게 되면 안보인다는 것 !

다른 메뉴로 이동하려 할 때 위로위로 올려야 하는 불편함이있어서 저 상단 bar를 고정시킬거임 !!! 

 

bar 상단고정 :  <nav class="navbar navbar-expand-md  fixed-top ">  요렇게 !!

 

bar는 스마트폰에서는 하단에 고정하는게 보기 더 편하기 때문에 하단고정 할 수도 있음 !

 

bar 하단고정 :   <nav class="navbar navbar-expand-md fixed-bottom "> 요렇게!! 

 

 

+++ 메뉴들은 기본이 왼쪽 정렬인데 ! 이걸 오른쪽 정렬로 바꿀거 

 

끝선에 메뉴정렬 :  <div class="collapse navbar-collapse justify-content-end" id="collapsibleNavbar">

삼발이랑 바인드를 위해 id명 꼭 넣어준다 !!

<body style="height:1500px;">  <!---스크롤바 생성하려고 ! --->
          <!--상단부분에 고정 이건 컴퓨터화면에서 많이 사용 -->
      <nav class="navbar navbar-expand-md bg-secondary navbar-dark fixed-top ">
          
           <!--하단부분에 고정 이건 핸드폰화면에서 많이 사용 
      <nav class="navbar navbar-expand-md bg-secondary navbar-dark fixed-bottom ">  --->
        <!-- 로고 -->  
            <a class="navbar-brand " href="#">
              <img src="images/logo.png" alt="로고이미지" style="width:70px;"/>
            </a>      
      
        <!-- Toggler/collapsibe Button -->
          <button class="navbar-toggler " type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
          <span class="navbar-toggler-icon"></span>  <!-- 삼발이 -->
        </button>
      
        <!-- Navbar links -->
        <!-- 끝선에 메뉴 정렬 ! 여기다가 justify-content-end 추가 !! -->
        <div class="collapse navbar-collapse justify-content-end" id="collapsibleNavbar">

            <ul class="navbar-nav">
            <li class="nav-item">
              <a class="nav-link" href="#">Link1</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Link2</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Link3</a>
            </li>
            <li class="nav-item dropdown"> <!---nav 하단 고정하면 dropup으로 상단고정이면 dropdown-->
                <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown">
                  Dropdown link
                </a>
                <div class="dropdown-menu">
                  <a class="dropdown-item" href="#">Link 1</a>
                  <a class="dropdown-item" href="#">Link 2</a>
                  <a class="dropdown-item" href="#">Link 3</a>
                </div>
              </li>
              <li class="nav-item">
                <form class="form-inline" action="#">
                    <input class="form-control mr-sm-2" type="text" placeholder="검색어 입력">
                    <button class="btn btn-success" type="submit">검색</button>
                  </form>
              </li>
          </ul>
        </div>
      </nav>
    <div class="container" style="margin-top:50px;"> <!--container-fluid 써도 됨 ! 상단컨테이너가 꽉 참 !-->
         <!--mt-n1 이거 추가 됨 했다가 nav가 먹어버려서 margin줌 -->
         <!--nav top fixed주면 기본적으로container를 다 먹어버림.... container에 margin을 낙낙하게(50px이상) 준다-->
        <div class="jumbotron bg-warning">
            <h1>Navigation Bar</h1>
            <p>Collapsing The Navigation Bar</p>
        </div>
    </div>    
</body>

 

NavigationBar_3.html
0.00MB

직접확인해보세요!

'학원 > BS(부트스트랩4)' 카테고리의 다른 글

11/16 44-5 [BS] Form Inputs  (1) 2022.11.16
11/16 44-4 [BS] Forms  (1) 2022.11.16
11/16 44-2 [BS] Navs  (0) 2022.11.16
11/16 44-1 [BS] Collapse_2  (0) 2022.11.16
11/15 43-5 [BS] Collapse  (0) 2022.11.15

Nav이거 탭같은거 !! 처음에 nav만 적용하면 그냥 링크태그랑 크게 다른게 없어 보이지만

점점 탭스러워지게 진화시킬거얌 !!

 

1.Nav Menus  진짜 기본 딱 nav만 적용한거

        <h2>Nav Menus</h2>
        <ul class="nav">
            <li class="nav-item">
              <a class="nav-link text-dark" href="#">Link</a> <!--글자색변경도가능--->
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Link</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Link</a>
            </li>
            <li class="nav-item">
              <a class="nav-link disabled" href="#">Disabled</a>  <!--비활성화-->
            </li>
        </ul>

링크랑 크게 다른게 없어보임

 

2. Aligned Nav   :  justify-content-center를 이용해서 정렬이 가능!! 

그리드이용해서 가운데/오른쪽 정렬 비교 !!

         <h2>Aligned Nav</h2>
         <div class="row">
            <div class="col bg-danger">
                <ul class="nav justify-content-center">
                    <li class="nav-item">
                      <a class="nav-link text-dark" href="#">Link</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="#">Link</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="#">Link</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link disabled" href="#">Disabled</a>
                    </li>
                  </ul>
            </div>
            <div class="col bg-warning">
                <ul class="nav justify-content-end">
                    <li class="nav-item">
                      <a class="nav-link text-dark" href="#">Link</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="#">Link</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="#">Link</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link disabled" href="#">Disabled</a>
                    </li>
                  </ul>
            </div>
         </div>

 

3.Vertical Nav  : 수직으로 정렬 시키기  ul태그에 flex-column 적용

          <h2>Vertical Nav</h2>
          <ul class="nav flex-column">
            <li class="nav-item">
              <a class="nav-link text-dark" href="#">Link</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Link</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Link</a>
            </li>
            <li class="nav-item">
              <a class="nav-link disabled" href="#">Disabled</a>
            </li>
          </ul>

 

4.Tabs, Pills, Justified Tabs/pills

순서대로 :  탭모양 추가 -  동글동글모양탭+활성화메뉴표시 - 동일한 크기로 부모영역 다 차지하는 탭

         <h2>Tabs, Pills, Justified Tabs/pills</h2>
          <!-- 그리드로 비교 !! md이상은 3분할, sm은2분할, sm 미만은 세로배치  -->
          <div class="row">
             <div class="col-sm-6 col-md-4">
                <ul class="nav nav-tabs"><!--nav-tabs추가-->
                    <li class="nav-item">
                      <a class="nav-link active" href="#">Active</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="#">Link</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link disabled" href="#">Disabled</a>
                    </li>
                </ul>
             </div>
             <div class="col-sm-6 col-md-4">
                <ul class="nav nav-pills"><!--nav-pills추가-->
                    <li class="nav-item">
                      <a class="nav-link active" href="#">Active</a>
                    </li>                
                    <li class="nav-item">
                      <a class="nav-link" href="#">Link</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link disabled" href="#">Disabled</a>
                    </li>
                </ul>
             </div>
             <div class="col-sm col-md-4">  
                <!-- nav-justified추가, 동일한 크기로 부모영역을 다 채움 !-->
                <ul class="nav nav-pills nav-justified ">
                    <li class="nav-item">
                      <a class="nav-link active" href="#">Active</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="#">Link</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link disabled" href="#">Disabled</a>
                    </li>
                </ul>
             </div>
          </div>

 

5.Pills/tabs with Dropdown,Toggleable/Dynamic Tabs/Pills

Pills/tabs with Dropdown : 텝에다 dropdown(더보기)기능 추가, 해당하는 li에 dropdown추가하고 li태그안에 div와a 태그로 메뉴들 넣어준다 ! 

Toggleable/Dynamic Tabs/Pills : 텝 클릭 시 내용보기,  

     li태그안에 a태그 속성으로 data-toggle="tab"추가 ! 

     ul 태그 밑에 각각 tab 안에 들어갈 내용들을 div로 감싸서 넣는다.

     tab의 href="#home" 과 내용의  id="home"으로 바인딩 !!

          <h2>Pills/tabs with Dropdown,Toggleable/Dynamic Tabs/Pills</h2>
          <div class="row">
              <div class="col-sm">
                <ul class="nav nav-pills">
                    <li class="nav-item">
                      <a class="nav-link active" href="#">Active</a>
                    </li>
                    <li class="nav-item dropdown">
                      <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#">Dropdown</a>
                      <div class="dropdown-menu">
                        <a class="dropdown-item" href="#">Link 1</a>
                        <a class="dropdown-item" href="#">Link 2</a>
                        <a class="dropdown-item" href="#">Link 3</a>
                      </div>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="#">Link</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link disabled" href="#">Disabled</a>
                    </li>
                  </ul>
              </div>
              
               <!--- Toggleable/Dynamic Tabs/Pills---------->
              <div class="col-sm">
                  <ul class="nav nav-tabs">
                    <li class="nav-item">
                      <a class="nav-link active" data-toggle="tab" href="#home">Home</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" data-toggle="tab" href="#menu1">Menu 1</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" data-toggle="tab" href="#menu2">Menu 2</a>
                    </li>
                  </ul>
                  <!-------- tab안에 넣는 내용들 -------->
                  <div class="tab-content">
                      <div id="home" class="container tab-pane active"><br>
                         <h3>HOME</h3>
                         <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
                      </div>
                      <div id="menu1" class="container tab-pane fade"><br>
                         <h3>Menu 1</h3>
                         <p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
                       </div>
                       <div id="menu2" class="container tab-pane fade"><br>
                         <h3>Menu 2</h3>
                         <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.</p>
                       </div>
                  </div>
              </div>
          </div>

 

6. 자바스크립트로 구현하기

위의 코드에서  data-toggle="tab" 를 제거하고 그 기능을 자바스크립트로 제어하기 !!!

          <ul class="nav nav-tabs" id="nav-tabs">  <!-- id="nav-tabs" 요거 추가한거 CSS선택자 쉽게 지정하려고 !!!-->
            <li class="nav-item">
              <a class="nav-link active" href="#home_">Home</a>  <!--위에거와의 차이는 data-toggle="tab" 의 유무 이거임 !!-->
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#menu_1">Menu 1</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#menu_2">Menu 2</a>
            </li>
          </ul>
          <div class="tab-content">
            <div id="home_" class="container tab-pane active"><br>
              <h3>HOME</h3>
              <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
            </div>
            <div id="menu_1" class="container tab-pane fade"><br>
              <h3>Menu 1</h3>
              <p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
            </div>
            <div id="menu_2" class="container tab-pane fade"><br>
              <h3>Menu 2</h3>
              <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.</p>
            </div>
          </div>
          
          <!-----  JQuery 이용 !!------->
          <script>
              $("#nav-tabs a").click(function(){
                    $(this).tab('show');
              });
          </script>

해보기!

Navs.html
0.01MB

'학원 > BS(부트스트랩4)' 카테고리의 다른 글

11/16 44-4 [BS] Forms  (1) 2022.11.16
11/16 44-3 [BS] Navigation Bar  (0) 2022.11.16
11/16 44-1 [BS] Collapse_2  (0) 2022.11.16
11/15 43-5 [BS] Collapse  (0) 2022.11.15
11/15 43-5 [BS] Dropdowns  (0) 2022.11.15

 앞에 배운 collaapse를 자바 스크립트로 구현하기 !

 

 

버튼이랑

내용들  div로 감싸고 class='collapse' 

(다른 내용들이랑 중복이 있어서 id는 따로 추가한 거임!)

          <h2>자바스크립트로 collapse(펼치다) 구현하기</h2>
          
          <button type="button" class="btn btn-primary">Toggle</button>
          <button type="button" class="btn btn-success">Show</button>
          <button type="button" class="btn btn-warning">Hide</button>            
          <button type="button" class="btn btn-info" id="vanilla">바닐라 자바스크립트</button>   

          <div class="collapse" id="collapse">  <!-- id="collapse" 요건 추가한거 -->
            Lorem ipsum dolor sit amet, consectetur adipisicing elit,
            sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
            quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
          </div>

 

  1. JQuery로 구현 (아직 배우기 전 이지만 미리 익혀둬...)

$( ) 이게 JQuery에서 쓰는 함수라고함

.click은 자스에서 onclick과 같은거 ! 함수사용은 비슷하고...  요 정도만? 

 <script>
              //이건 jQuery로 구현
            $('button.btn-primary').click(function(){
              $('#collapse').collapse('toggle');
            });
            $('button.btn-success').click(function(){
              $('#collapse').collapse('show');
            });
            $('button.btn-warning').click(function(){
              $('#collapse').collapse('hide');
            });
            $("#collapse").on('show.bs.collapse', function(){
              console.log('show.bs.collapse이벤트 발생');
            });
            $("#collapse").on('shown.bs.collapse', function(){
              console.log('shown.bs.collapse이벤트 발생');
            });
            $("#collapse").on('hide.bs.collapse', function(){
              console.log('hide.bs.collapse이벤트 발생');
            });
            $("#collapse").on('hidden.bs.collapse', function(){
              console.log('hidden.bs.collapse이벤트 발생');
            });
 </script>

 

2. 바닐라 자바스크립트로 구현(순수 자바스크립트)

 <script>
           var vanilla = document.querySelector('#vanilla');
           var collapse = document.querySelector('#collapse');      
           
           var toggle=false;
            //버튼에 클릭 이벤트 리스너 부착  
           vanilla.onclick =function(e){   //collapse라는 아이디를 가진 div를 펼쳤다 접었다(toggling)
              if(!toggle)
                collapse.style.display='block';         
              else
                collapse.style.display='none';
                toggle = !toggle       
           };
  </script>
해보기!

Collapse.html
0.01MB

'학원 > BS(부트스트랩4)' 카테고리의 다른 글

11/16 44-3 [BS] Navigation Bar  (0) 2022.11.16
11/16 44-2 [BS] Navs  (0) 2022.11.16
11/15 43-5 [BS] Collapse  (0) 2022.11.15
11/15 43-5 [BS] Dropdowns  (0) 2022.11.15
11/15 43-6 [BS] Cards  (0) 2022.11.15

클릭하면 접히고 열리는 거

QnA 에 주로 이용한다 !

 

1.Basic Collapsible :  div 에 collapse collapse show로 적용 ! show 붙여주면 처음부터 컨텐츠 보이게 !!

  a태그에 이용 시 href="이름"을 div의 id="이름 "  이름을 동일하게 해서 바인딩 해준다 !

        <h2>Basic Collapsible</h2>
        <!--- a태그로 사용할 때는 data-target 대신에href 를 넣어 줌 이거로 밑의 컨텐츠랑 바인드 !! -->
        <a href="#demo" class="btn btn-primary" data-toggle="collapse" >Simple collapsible</a>
        <!--- <button class="btn btn-primary" data-toggle="collapse" data-target="#demo">Simple collapsible</button>--->       
         <div id="demo" class="collapse collapse show"> <!---처음부터 보이기 -->
            Lorem ipsum dolor sit amet, consectetur adipisicing elit,
            sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
            quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
        </div>

 

2.Accordion : 맨 겉의 div에 accordion 적용 !( 부모 div 필요 )

  아 코 디 언 !! 이건 카드형태로 여러개 묶는 다!!

바인딩은 어떻게?

a태그 href 랑 그 안 div의 id랑은 동일 하고 안의 div 에 data-parent="#accordion"으로 바인딩함 !!

       <h2>Accordion</h2>   <!--카드형태로 여러개 묶기-->
        <div id="accordion">  <!--부모 div 필요-->
            <div class="card">
              <div class="card-header">
                <a class="card-link" data-toggle="collapse" href="#collapseOne">
                  Collapsible Group Item #1
                </a>
              </div>
              <div id="collapseOne" class="collapse show" data-parent="#accordion">  <!--맨 처음꺼 보이고, 부모 div랑 바인드 -->
                <div class="card-body">
                  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
                </div>
              </div>
            </div>
            <div class="card">
              <div class="card-header">
                <a class="collapsed card-link" data-toggle="collapse" href="#collapseTwo">
                Collapsible Group Item #2
              </a>
              </div>
              <div id="collapseTwo" class="collapse" data-parent="#accordion">
                <div class="card-body">
                  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
                </div>
              </div>
            </div>
            <div class="card">
              <div class="card-header">
                <a class="collapsed card-link" data-toggle="collapse" href="#collapseThree">
                  Collapsible Group Item #3
                </a>
              </div>
              <div id="collapseThree" class="collapse" data-parent="#accordion">
                <div class="card-body">
                  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
                </div>
              </div>
            </div>
          </div>

클릭해보세요!

Collapse.html
0.00MB

'학원 > BS(부트스트랩4)' 카테고리의 다른 글

11/16 44-2 [BS] Navs  (0) 2022.11.16
11/16 44-1 [BS] Collapse_2  (0) 2022.11.16
11/15 43-5 [BS] Dropdowns  (0) 2022.11.15
11/15 43-6 [BS] Cards  (0) 2022.11.15
11/15 43-7 [BS] List Groups  (0) 2022.11.15

+ Recent posts