'Web 프로그램/CSS'에 해당되는 글 3건

728x90

css 를 이용하여 테이블을 미려하게 디자인해보자.

<style></style> 사이에 코드를 추가한다.


테이블 테두리를 만드는 속성

테두리는 border 속성으로 만든다.
table, th, td 요소에 적용할 수 있다. tr 요소에는 적용 안된다.


table 요소에 border를 적용하면 표 외각에 테두리가 그려진다.

table {
    width: 100%;
    border: 1px solid #dddddd; /* 테이블 외곽선이 그려진다 */
    border-collapse: collapse; /* 테두리 사이의 간격 제거 */

}


th, td 요소에 border를 적용하면 각 셀에 테두리가 생긴다.

- border와 padding은 상속하지 않는 속성이다.

th, td {
    border: 1px solid #dddddd; /* 각 셀의 외곽선 그리기 */

    padding: 10px; /* 테두리와 내용 사이의 간격 */

    text-align: center; /* 글자 가운데 정렬 */

    vertical-align: middle; /* 셀 안의 내용 세로 정렬 : top, middle, bottom */

}


세로선 없이 가로선만 보이게 하고  싶을 때
table {
  width: 100%;
  border-top: 1px solid #dddddd;
  border-collapse: collapse;
}
th, td {
  border-bottom: 1px solid #dddddd;
  padding: 10px;
}


제목 행에 배경색 추가하기

th {
  background-color: #bbdefb;
}


짝수행에 배경색 추가하기

tr 요소에 nth-child (가상클랙스) 선택자를 이용하여 배경색을 추가한다.

:nth-child는 형제 요소 중에서 규칙을 만족하는 요소를 선택할 때 사용한다.

an+b 대신에 odd을 쓰면 홀수번째 요소가, even을 적으면 짝수번째 요소가 선택된다.

- a와 b는 상수, n은 변수
- n은 정수 0, 1, 2, 3, ···

- even 대신에 2n 으로, odd 대신 2n + 1 로 해도 된다.


tbody tr:nth-child(even) {
    background-color: #f1f1f1;
}


테이블 행(row)에 마우스 올림 효과

table > tbody > tr:hover {
    background-color: #d1f1f1;
}


클랙스를 적용한 테이블 행에 마우스 올림 효과

table.YourClass tr:hover td {
    background-color: #d1f1f1;
}



'Web 프로그램 > CSS' 카테고리의 다른 글

CSS 문법  (0) 2015.03.26
CSS 기초  (0) 2015.03.16
블로그 이미지

Link2Me

,

CSS 문법

Web 프로그램/CSS 2015. 3. 26. 09:32
728x90

1. ID 선택자

ID 선택자(Selector)는 페이지 안에서 하나 밖에 없는 고유한 엘리먼트를 나타내기 위해 사용한다.

 

 

ㅇ 앞에 #을 붙이고 영문으로 시작하는 이름을 부여한다.

같은 페이지 내에 한번만 적용하는 것이 원칙이다.

ㅇ 자바 스크립트 프로그램에서 값을 얻거나 수정할 때 사용하기도 한다.

ㅇ 다른 페이지와 중복해서 사용할 수 있다.

 

반면에, 클래스 Selctor 는 고유한 것이 아니기 때문에

한 문서내에서건, 전체 페이지에서건 어느 오브젝트에나 광범위하게 다 적용할 수 있다.

 

CSS : 본문 <body> 가 시작되기 전에 설렉터( Selector )로써 미리 정의한다.
  2-1) 전역 셀렉터   : 모든 요소, 즉 모든 태그에 필요하다면 적용 가능
  2-2) 클래스 셀렉터 : 특정 태그에 적용
  2-3) ID 셀렉터     : ID셀렉터는 특정부위에 예외 처리를 할 때 사용한다.

 

2. Position : 태그들의 위치를 결정하는 CSS

 static  모든 태그들은 처음에 position: static 상태다.
 차례대로 왼쪽에서 오른쪽, 위에서 아래로 쌓인다.
 relative  static 상태를 기준으로 top, right, bottom, left 방향으로 주어진 픽셀만큼 이동된다.
 보통 태그는 같은 position이면 나중에 나온 태그가 더 위에 배치된다.
 z-index는 태그들이 겹칠 때 누가 더 위로 올라가는지를 결정하는 속성이다.
 fixed  고정(fixed) 엘리먼트는 뷰포트(viewport)에 상대적으로 위치가 지정된다.
 이는 페이지가 스크롤되더라도 늘 같은 곳에 위치한다는 뜻이다.
 absolute  뷰포트에 상대적으로 위치가 지정되는 게 아니라
 가장 가까운 곳에 위치한 조상 엘리먼트에 상대적으로 위치가 지정된다.
 부모 중에 포지션이 relative, absolute, fixed 가 없다면 가장 위의 태그(body)가 기준이 된다.
 position 을 설정했다면 부모 요소에 position 이 설정되어 있는지 확인하고 없다면,
 부모 요소에 position:relative 를 추가하라.

- top : 요소의 position 기준에 맞는 '위쪽'에서의 거리(위치)를 설정

- bottom : 요소의 position 기준에 맞는 '아래쪽'에서의 거리(위치)를 설정

- left :

- right :

3. z-index : position 적용된 요소에만 작동하며, 숫자가 높을수록 앞으로 배치된다. 기본값은 0이다.

 

4. display 프로퍼티

 block  요소를 block 요소(element)처럼 표시한다. 따라서 요소 앞뒤로 줄바꿈된다.
 사용 가능한 최대 가로 너비를 사용한다.
 크기를 지정할 수 있다.

 div는 표준 블록 레벨 엘리먼트다.
 inline  기본값으로, 요소 앞뒤로 줄바꿈되지 않는다.
 필요한 만큼의 너비를 사용한다.
 크기를 지정할 수 없다.

 a, span 태그는 인라인 엘리먼트다.
 inline-block  내부는 block 처럼 표시되는데, 줄바꿈되지 않는다.
 none  보이지도 않고 해당 공간도 존재하지 않게 된다.
 visibility:hidden 은 width, height 값만큼 공간은 차지하는데 보이지 않는다.
 flex  flexbox를 다루려면 주축과 교차축이라는 두 개의 축에 대한 정의를 알아야 한다.
 display: flex; /* 수평으로 나란히 정렬 */
 flex-direction: column; /* 추가하면 수직으로 정렬된다. */
 flex-direction: row; /* 수평 정렬 */
 참조 : https://developer.mozilla.org/ko/docs/Web/CSS/CSS_Flexible_Box_Layout/Flexbox%EC%9D%98_%EA%B8%B0%EB%B3%B8_%EA%B0%9C%EB%85%90
 .container {
   display: flex;
   flex-direction: row;
   justify-content: center;
   align-items: center;
 }

 

5. float : 요소를 왼쪽 또는 오른쪽에 배치할 때 유용한 속성이다.

float 속성을 부여한 요소의 다음 요소는 float 속성을 부여한 요소가 차지하는 위치만 제외하고 나머지 공간을 채우게 된다.
사진을 왼쪽 또는 오른쪽에 배치하고 그 주위를 텍스트로 채울 때 사용하거나, 사이트 레이아웃을 만들 때 사용한다.

.box {
  float: left;
  width: 200px;
  height: 100px;
  margin: 1em;
}
.after-box {
  clear: left;

- inherit : 부모 요소에서 상속
- left    : 왼쪽에 부유하는 블록 박스를 생성. 페이지 내용은 박스 오른쪽에 위치하며 위에서 아래로 흐름.
- right   : 오른쪽에 부유하는 블록 박스를 생성. 페이지 내용은 박스 왼쪽에 위치하며 위에서 아래로 흐름.
- none    : 요소를 부유시키지 않음

 

- clear:none   기본값으로 clear를 설정하지 않은 것과 같다.
- clear:left     float:left 를 취소한다
- clear:right   float:right 를 취소한다
- clear:both   왼쪽 오른쪽을 취소한다.

 

6. overflow : 내용이 요소의 크기를 벗어났을 때 어떻게 처리할지를 정하는 속성

 

7. box-sizing : 박스의 크기를 어떤 것을 기준으로 계산할지를 정하는 속성

- content-box : 콘텐트 영역을 기준으로 크기를 정한다.
- border-box : 테두리를 기준으로 크기를 정한다.
- initial : 기본값으로 설정한다.
- inherit : 부모 요소의 속성값을 상속받는다.

* {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
 }

 

 

'Web 프로그램 > CSS' 카테고리의 다른 글

[CSS] Table 꾸미기  (0) 2018.05.13
CSS 기초  (0) 2015.03.16
블로그 이미지

Link2Me

,

CSS 기초

Web 프로그램/CSS 2015. 3. 16. 00:24
728x90

CSS 기초


HTML은 운영체제나 사용하는 프로그램에 관계없이 누구나 같은 내용의 문서를 볼 수 있도록 하겠다는 취지에서 만들어졌다.
그러나, 이미지와 동영상등의 하이퍼미디어를 주 내용으로 하는 웹 문서가 다양하고 화려해짐에 따라,
HTML은 그 한계를 드러났고, 이를 보완하기 위해 등장한 새로운 문법으로 스타일 시트를 사용하면
TABLE이나 FRAME에 의존하던 문서의 레이아웃을 효과적으로 할 수 있고, 글자 크기나 글자체, 줄간격, 배경 색상 등도 자유롭게 선택할 수 있다.

CSS 는 HTML문서 내에서 어떤 요소에 CSS의 스타일을 적용시킬 것인가 결정하기 위한 것이다.

CSS 파일은 선택자(Selector)와 { }로 둘러쌓인 속성:속성값 들로 이루어져 있다.


CSS 의 장점

① 홈페이지에 통일감(일관성)을 줄 수 있다.
② 한 번만 정의하여 여러번 가져다 쓸 수 있으므로 업무효율성을 높일 수 있다.
③ 정의된 곳 한 곳만 수정하면 되므로 수정작업이 쉽다.


CSS의 정의하는방법
(1) <style>태그를 선언하여 사용하기

     <style type=”text/css”>
       <!--
          이곳에 스타일을 정의한다.
       -->
     </style>
(2) 각 태그들의 style 속성에 설정하기

      <태그 이름 style = ”스타일 ……..”  >

(3) CSS(스타일)를 파일로 저장하기

     <head> </head> 사이에 외부 스타일 시트를 불러올 수 있다.
     <link rel="stylesheet" type="text/css" href="./stylesheet.css" />    


Front End 디자인 무료 공개 소스(코드펜)  https://codepen.io 에서 회원 가입하면 코드 미리 보기도 가능하고, 수많은 오픈 소스를 이용할 수 있다.


※ 글자색상, 배경색상을 RGB로 직접 지정하고 싶은 경우에는

    http://www.color-hex.com/ 에서 확인 변경할 수가 있고

    http://www.w3schools.com/css/css_colors.asp 참조하면 좋다.

    https://www.cmsfactory.net/ 에 좋은 강좌 내용이 많다.


ㅇ ID 사용하기
   스타일 시트 파일내에
   #slist { font-style:italic;  color:blue; }
   라고 정의하면
   HTML 본문에서
   <div id="slist"> Welcome to Hello</div>
   로 문장을 사용한다.


<style>
#para1 { text-align: left; color: blue; }
</style>

<p id="para1">Hello World!</p>


ㅇ 클래스 사용하기
   ID에 사용되는 # 심볼 대신에 클래스 문장은 .(점)으로 시작한다.
   스타일 시트 파일내에
   .slist { font-style:italic;  color:blue; }
   라고 정의하고
   HTML 본문에서는
   <div class="slist"> Welcome to Hello</div>


<style>
p.center { text-align: center; color: red; }

p.large { font-size: 200%; }

p {text-align:justify;}  // <p> ...</p> 태그 사이의 모든 텍스트가 양쪽 맞춤된다.

</style>

<h1 class="center">This heading will not be affected</h1>
<p class="center">This paragraph will be red and center-aligned.</p>

<p class="center large">This paragraph will be red, center-aligned, and in a large font-size.</p>


p { margin-left : 10px; margin-right : 10px; background-color: yellow; }


ㅇ CSS 규칙
    - CSS에서 세미콜론은 동일한 줄에 있는 여러 CSS 문장을 분리하는데 사용한다.

    - 만일 값이 공백을 포함한 여러 단어일 경우 다음과 같이 quote(")로 묶어준다.
      p {font-family: "sans serif"} 
    - 하나의 선택자에 하나 이상의 속성을 정의하고 싶을 경우에는 ";"(semicolon)으로 분리해 준다.
      p {text-align:center;color:red}


ㅇ 외부 스타일 시트

외부 스타일 시트는 여러 웹 페이지에 스타일을 적용시킬 때 이상적이다. 외부 스타일 시트를 사용하면 하나의 CSS파일 만 수정하여 어려 웹 페이지(HTML문서)의 스타일을 변경시킬 수 있다. 그렇게 하기 위해서 각각 웹 페이지에는 <link> 태그를 사용하여 외부 스타일 시트 파일을 지정하는 문장에 <head>태그에 포함되어 있어야 한다.
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="default.css" />
</head>
<body>


ㅇ 주석처리
   /* ... */ 로 하면 주석으로 인식한다.


ㅇ 내부스타일 시트

내부 스타일 시트는 하나의 문서에서만 사용하는 스타일을 정의할 때 사용한다. 내부 스타일은 <head>태그 안에 <style>태그를 이용하여 정의한다.

<head>
<title>문서의 제목</title>
<style type="text/css">
hr { color: sienna; }
p  { margin-left: 20px; }
body {
       background-image: url("images/back.gif")
}
</style>
</head>


<style type = "text/css">
        p { color : blue; }       /* p 태그 안의 글자들을 파란색으로 처리함.  */
        #ctxt { color : blue; }     /* id명이 ctxt인 요소의 글자들을 파란색으로 처리함. */
        .ctxt { color : blue; }      /* class명이 ctxt인 요소의 글자들을 파란색으로 처리함. */
         * { color : blue; }           /* 페이지 내의 모든 요소의 글자들을 파란색으로 처리함. */
         li > p { color : blue; }       /* li 자식 p 태그의 글자들을 파란색으로 처리함.   */
         h1 + p { color : blue; }       /*  h1 속 바로 다음 p 태그의 글자들을 파란색으로 처리함. */
         h1[class] { color : blue; }     /* 두 hi 중 class 속성을 가진 '서울특별시'만 파란색으로 나타난다. */
        a { color : #000; }              /* 링크 걸린 글자는 모두 검은색 */
        a:hover { color : #f00; }        /* 마우스 닿으면 빨간색 */

       .box:after { content : "항목을 선택해주세요." ; color : green ;}  /* box의 마지막에 문장을 삽입한다. */
       p:first-letter { font-size : 300% ; }                    /* p 태그 안의 첫 글자는 글자크기 세배로. */
       p { border-bottom:1px dashed #000 ;}             /* p 태그에 모두 밑줄 치고. */
       p:last-child { borde : none ;}                            /* 마지막 p 태그에만 밑줄 빼기. */
       p.more a { color : red ; }             /* 클래스명이 more인 p 태그의 링크 (a)색상을 변경함. */
        .box li { padding : 5px 0;}               /* 클래스명이 box인 요소 내부의 li에 세로 여백을 준다. */
        h1, p { border:1px solid #000; }              /* h1과 p 요소에 1px짜리 검은 테두리를 준다. */
</style>


기본적으로 <div>  엘리먼트는 무한 너비를 가진다.

픽셀(px)의 크기는 사용자의 모니터의 면적과 픽셀 깊이에 따라 다르다.

포인트는 인치의 1/72 크기와 같다.

em 은 현재 글씨체와 같고, 상대적인 면적으로 나타내는 데 사용된다.


<style>

body {
    background-image: url("gradient_bg.png");
    background-repeat: repeat-x // 작은 이미지파일을 가로방향으로 큰 이미지처럼 보여준다

    background-repeat: no-repeat;

    background-position: left top;  // 이미지 파일 위치 지정

    margin-left: 220px; // 이미지와 글자가 겹쳐 보이지 않도록 글자의 여백 지정
}
</style>


If the margin property has four values:
    margin: 20px 30px 40px 50px;
        top margin is 20px
        right margin is 30px
        bottom margin is 40px
        left margin is 50px

If the margin property has three values:
    margin: 20px 30px 40px;
        top margin is 20px
        right and left margins are 30px
        bottom margin is 40px

If the margin property has two values:
    margin: 20px 30px;
        top and bottom margins are 20px
        right and left margins are 30px

If the margin property has one value:
    margin: 20px;
        all four margins are 20px


text-transform: uppercase;  // 글자를 모두 대문자로 변환
text-transform: lowercase;  // 글자를 모두 소문자로 변환
text-transform: capitalize;  // 글자의 첫글자만 대문자로 변환
text-indent: 30px;  // 텍스트 첫글자 들여쓰기



ㅇ 스마트폰 레이아웃 주의사항

- overflow 속성을 사용해서 스크롤을 넣을 수 없다.
- 스마트폰은 hover가 없다. 그래서 hover, active 등 상태 선택자를 사용할 때 주의해야 한다.
- 동위 선택자에 제한이 있다.
- 선택자에 ~를 지원하지 않는 브라우저가 있다.
- iphone에서는 label 태그에 onclick="" 속성을 부여해야 정상 동작한다.
- 그래디언트를 적용할 수 없을 수 있다.


ㅇ viewport META

- meta 태그를 title 태그 위에 선언하여 브라우저에 특별한 정보를 제공할 수 있다.
- name 속성의 값이 viewport인 경우 content 속성의 값을 이용해 브라우저 화면 설정과 관련된 정보를 제공한다.
<meta name="viewport" content="width=device-width, intial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=medium-dpi" />

'Web 프로그램 > CSS' 카테고리의 다른 글

[CSS] Table 꾸미기  (0) 2018.05.13
CSS 문법  (0) 2015.03.26
블로그 이미지

Link2Me

,