학원/강의

*52일차 (CSS - 6~9.box_model ~ display)

pringspring 2022. 4. 11. 20:37

@CSS - box model

 

*박스모델

  • margin : 다른 요소와의 여백
  • border : 경계영역
  • padding : border와 content사이의 여백
  • content : 실제내용 (width/height 지정)
 <div class="box">안녕</div>
  <style>
  .box {
    border: 3px solid #000;
    padding: 10px 10px 10px 10px;
    margin: 15px 15px 15px 15px;
    width: 200px;
    height: 200px;
    background-color: violet;
  }  
  </style>

  <h2 style="margin-bottom: 50px;">마진겹침현상</h2>

  <h2 style="margin-top: 30px;">마진겹침현상</h2>
  • 인접한 두 요소의 margin이 다른경우 , margin이 큰값으로 처리됨

 


 

 

@CSS - border

 

*경계선

 

ex)

 <h1>경계선</h1>
  <div class="box"></div>
  <style>
  .box {
    width: 200px;
    height: 200px;
    background-color: springgreen;
    /* border: 3px solid #000; */
    border-width: 3px;
    border-style: solid;
    /* border-color: #000; */
    border-top-color: red;
    border-right-color: orange;
    border-bottom-color: violet;
    border-left-color: blue;
  }
  </style>
  • 사각형

 

<h2>border-radius</h2>

  <div class="box radius"></div>
  <img class="radius shadow" src="../sample/image/hyunta.jpg" alt="" style="width:200px;">
  <style>
  .radius {
    /* top-left top-right bottom-right bottom-left */
    /* border-radius: 40px 30px 20px 10px; */
    border-radius: 50%;
  }
  </style>
  • 코너를 둥글게 처리

 

<h2>box-shadow</h2>
  <div class="box shadow"></div>
  <style>
  .shadow:hover {
    box-shadow: 5px 5px 10px 3px gray;
  }
  </style>
  • 가로offset 세로offset blur(번짐) spread(그림자크기) color

 

 


 

@CSS - border

 

ex)

<body>
  <h1>목록</h1>
  <nav>
    <ul class="menu">
      <li id="home"><a href="#">Home</a></li>
      <li id="html"><a href="#">HTML5</a></li>
      <li id="css">
        <a href="#">CSS3</a>
        <ul class="submenu">
          <li><a href="#">Bootstrap</a></li>
          <li><a href="#">Foundation</a></li>
        </ul>
      </li>
      <li id="js">
        <a href="#">Javascript</a>
        <ul class="submenu">
          <li><a href="#">React</a></li>
          <li><a href="#">Vue</a></li>
        </ul>
      </li>
      <li id="jquery"><a href="#">jQuery</a></li>
    </ul>
  </nav>
  <style>
  nav {
    width: 80%;
    margin: 0 auto;
  }
  ul.menu, ul.submenu {
    padding: 0px;
    list-style: none;
  }
  
  ul.menu li {
    float: left;
    background-color: #c9c9c9;
    text-align: center;
    border-right: 1px #818181 solid;
    box-shadow: 1px 1px 8px #bbb;
    width: 8em;
    height: 2.5em;
  }
  ul.menu a {
    display: block; /* inline요소를 block요소로 변경해서 width/height값을 갖도록 함 */
    text-decoration: none;
    color: #292929;
    padding: .6em .6em;
  }
  ul.menu li:hover {
    background-color: #333;
  }
  ul.menu li:hover a {
    color: #fff;
  }
  ul.menu > li:first-child {
    border-radius: .5em 0 0 .5em;
  }
  ul.menu > li:last-child {
    border-radius: 0 .5em .5em 0;
    border: 0; /* border-right 제거 */
  }
  ul.menu ul {
    display: none; /* 안보임 처리 */
  }
  ul.menu > li:hover ul {
    display: block; /* 보임 처리 */
  }
  ul.menu > li li {
    border: 0;
    border-radius: 0;
  }
  </style>
  </body>


 

 

@CSS - display

 

ex)

<body>
  <h1>display</h1>

  <div class="box inline">div1</div>
  <div class="box inline">div2</div>
  <div class="box inline">div3</div>
  <hr>
  <span class="box block">span1</span>
  <span class="box block">span2</span>
  <span class="box block">span3</span>
  <hr>
  <div class="box inline-block">div1</div>
  <div class="box inline-block">div2</div>
  <div class="box inline-block">div3</div>
  <style>
  .box {
    width: 200px;
    height: 200px;
    background-color: goldenrod;
    border: 3px solid #000;
  }
  .inline-block {
    display: inline-block;
  }
  .block {
    display: block;
  }
  .inline {
    display: inline;
  }
  </style>

  <h2>숨김처리</h2>
  <div class="box display-none">display:none</div>
  <hr>
  <div class="box visibility-hidden">visibility:hidden</div>
  <hr>
  <div class="box opacity0">opacity:0</div>
  <hr>
  <style>
  .display-none {display: none;}
  .visibility-hidden {visibility: hidden;}
  .visibility-hidden:hover {visibility: visible;} /* Not Working */
  .opacity0 {opacity: 0;}
  .opacity0:hover {opacity: 1;} /* Working */
  </style>
  

  <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</body>
  • inline 요소 (display:inline) : span, a, img...
  • block 요소 (display:block) : div,h1,p...

 

 

  • 마우스로 가리키면 표시됨