반응형

box-sizing 속성은 해당 컨텐츠의 크기의 기준을 어떤것으로 잡을것인지

정하는 속성이다.

 

[box-sizing의 값]

 

1. box-sizing: content-box (default, 콘텐트 영역을 기준으로 크기를 정한다.)

box-sizing: content-box

width:500px, height:100px를 주고 padding:20px를 주었을 때, padding값을 포함하여

width:540px, height:140px이 된다.

 

2. box-sizing: border-box (테두리를 기준으로 크기를 정한다.)

box-sizing: border-box

테두리를 포함한 크기를 지정하는 border-box는, 여백을 포함하여 크기를 정하게 된다.

border:1px solid #colorCode 와 같은 border나, padding값을 포함하여 크기를 정할 때 유용하게 쓰인다.

 

3. box-sizing: initial (기본값으로 설정한다.)

 

4. box-sizing: inherit (부모의 속성값을 따라간다.)

 

[브라우저 지원]

  • Chrome : 10.0+ (4.0 -webkit-)
  • Firefox : 29.0+ (2.0 -moz-)
  • Internet Explorer : 8.0+
  • Opera : 9.5+
  • Safari : 5.1+ (3.2 -webkit-)
반응형

'CSS > CSS 이론 및 기본' 카테고리의 다른 글

[css] reset.css  (0) 2019.11.24
[CSS] CSS 선택자(selector)  (0) 2018.04.24
[CSS] CSS란 무엇인가?  (0) 2018.04.06
반응형
@charset 'UTF-8';

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
    content: ''; content: none;
}
table {
    border-collapse: collapse; border-spacing: 0;
}

 

@출처 : https://meyerweb.com/eric/tools/css/reset/index.html

 

CSS Tools: Reset CSS

CSS Tools: Reset CSS The goal of a reset stylesheet is to reduce browser inconsistencies in things like default line heights, margins and font sizes of headings, and so on. The general reasoning behind this was discussed in a May 2007 post, if you're inter

meyerweb.com

스타일시트 재설정을 하는 이유는 브라우저가 가지고 있는 기본적인 줄 높이, 여백 및

폰트크기와 설정등을 '초기화' 하는 것에 목표가 있다.

 

해당 링크의 내용에 따르면, 위 reset.css는 가장 노멀한 reset.css이다.

자신이 필요한 부분을 추가로 설정할 수 있고, 마음껏 커스터마이징 하여 브라우저의 특성을

초기화 하는것이 좋다.

 

예를들어 링크에 대한 설정과 색상 등을 추가해서 사용하면 편리하다. 

 

** 해당 reset.css는 2011년 1월 26일날 개정된 스타일이다.

반응형

'CSS > CSS 이론 및 기본' 카테고리의 다른 글

[css 이론 및 기본] box-sizing  (0) 2019.12.26
[CSS] CSS 선택자(selector)  (0) 2018.04.24
[CSS] CSS란 무엇인가?  (0) 2018.04.06
반응형

CSS 선택자? - Cascading Style Sheets Selector


CSS란 무엇인가?


css는 documents가 사용자에게 화면을 어떻게 보여질까를 기술하는 언어이다.

오늘날 웹표준 에서는 구조와 표현, 행위를 각각 분리해서 개발 하기를 권유한다.


구조 : 웹 컨텐츠에 의미를 부여한  마크업 소스 (HTML)

표현 : 마크업에 대한 시각적인 디자인을 표현 (CSS)

행위 : 브라우저의 상호작용과 동적인 표현을 담당 (JavaScript)


이전 포스팅 [CSS] CSS란 무엇인가? 를 참고하면, 내부 스타일 시트에서

style 태그로 기술하기 보다는, 외부 스타일 시트로 분리해서 사용하는 것이 각 구조화된 마크업에 따라

다양한 디자인을 할 수 있고, 가독성과 유지보수 측면에서 더 효율적이다.



CSS 선택자(Selector)?


선택자(Selector)란 말 그대로 원하는 element(태그)를 선택해주는 요소이다.

기본적인 css의 구성인 Rule Set은 다음과 같다.

selector{property:value}

selector - 선택자. {} 선언블록 이전의 element를 선택, 선언블록 안에 있는 내용을 선택자로 설정한 element에 적용.


{} - 선언블록. property(속성)와 value(값) 으로 이루어진 스타일 정의를 묶어놓음.


property - 해당 element에서 줄 속성을 지정. 공통속성과 element에서 지원하는 속성을 사용할 수 있다.


value - 해당 property에서 사용할 수 있는 값들을 지정함.


CSS 선택자의 종류


전체선택자

*{margin:0; padding:0}

전체 선택자는 html에서 모든 element(태그)에 같은 css 속성을 적용한다.

보통 어떠한 값을 초기화 할 때 사용하는데, 쓰기에는 간편하지만 모든 요소를 읽어내야 하기 때문에

로딩속도가 느려질 수 있다. 이를 방지하기 위해 초기화 css가 존재한다.

일반적으로 reset.css 혹인 Nomalize.css 등을 사용한다.


reset.css 참고 (http://heeya7.tistory.com/6)

Nomalize.css 참고 (http://heeya7.tistory.com/5)




태그선택자

div{margin:0; padding:0}

태그 선택자는 html 요소를 직접적으로 기술하는 선택자다.

element의 tab name을 직접 쓰는 방식으로, 문서 내의 모든 div가 적용되는 위험성이 있으므로

복합선택자 등을 활용하여 써야 한다.




클래스 선택자

/* css */

.className{margin:0; padding:0}

div.className2{color:red}


<!-- html -->

<div class="className className2">클래스 선택자 사용법</div>

클래스 선택자는 위와같이 element에서 class="propertyName" 형식으로 기술된 element를 찾아 스타일을 지정한다.

위의 예시를 보면 .className으로 className이라는 클래스명을 가진 div를 찾아, 스타일을 지정하였다.

그 아래 div.className2 라고 기술된 것은 'div태그중' className2라는 클래스명을 찾아 스타일을 지정한다.

이는 <p class="className2">스타일</p> 와 같은 코드에는 div가 아니기 때문에 적용되지 않는다.




아이디 선택자

/* css */

#idName{margin:0; padding:0}

div#idName{margin:0; padding:0}


<!-- html -->

<div id="idName">아이디 선택자 사용법</div>

아이디 선택자는 .className이 아닌 #을 붙인 #idName 으로 사용된다.

아이디 선택자를 사용할 때 주의할 점은, '단 한번만 유일하게 적용되는 value' 라는 것이다.

이는 html 문서에서 특정 id속성값은 오직 하나만 있어야 한다는 뜻이다.


id선택자는 웹 문서 내에서 요소의 배치 방법을 지정할 때 자주 사용된다.




복합 선택자

/* css */


.grand .parent{color:red}    //적용 가능

.grand .child{color:blue}    //적용 가능


.grand>.parant{font-weight:bold} //적용 가능

.grand>.child{font-weight:bold} //적용 불가능(child는 grand의 직계자식이 아님)


div+p{background:#c8c8c8;} //div태그의 직계자식중 p태그만 스타일 지정

div~p{color:green} //div와 형제관계(같은레벨)의 모든 p태그에 스타일 지정


/* html */


<div class="grand">

<p class="parant">부모태그</p>

<span class="child">자식태그</span>

</div>


<p>div.grand와 형제노드</p> // grand div와 형제레벨의 노드


<p>단락</p>


<span>텍스트</span>


<p>단락2</p>

E F{property:value} // E의 하위요소 F선택

E의 하위요소(자식, 자손 모두 포함) 중에서 F의 명칭을 가진 element를 선택한다.


E>F{property:value} // E의 직계자식 F선택

E의 바로아래요소(직계자식)인 element를 선택한다.


E+F{property:value} // E요소의 바로뒤 오는 직계자식 F선택

E요소의 바로 뒤에있는 직계자식 F만 선택한다. 두번째 F는 선택되지 않는다.


E~F{property:value} // E요소의 형제레벨의 모든 F선택

E요소와 같은 레벨의 모든 F태그를 선택한다.




속성선택자


속성선택자는 태그 안의 속성에 따라 스타일을 지정하는 선택자 방식이다.

값의 조건에 따라 다양한 스타일을 지정할 수 있기 때문에 활용도가 높다.

<input type="text" value="check01" class="default red">

<input type="text" value="check02" class="default blue">

<input type="text" value="check03" class="default red">

<input type="text" value="check04" class="check red">

<input type="text" value="check05" class="check-test">



/* text 형식의 input태그 선택 */

input[type="text"]{width:200px; padding:5px}


/* red 클래스를 포함한 input태그 선택 */

input[class~="red"]{border:1px solid red}


/* check로 시작하는 class명을 가진 input 선택 */

input[class^="check"]{color:green}


/* blue로 끝나는 class명을 가진 input 선택 */

input[class$="blue"]{border:1px solid blue}


/* check라는 값이 포함된 value를 가진 input 선택 */

input[value*="check"]{text-align:right}


/* check로 시작하거나, check를 class명으로 포함하는 input 선택 */

input[class|="check"]{color:red}


E[attr] - 'attr' 속성이 포함된 E태그 선택


E[attr="val"] - 'attr' 속성의 값이 "val"과 일치하는 E태그 선택


E[attr~=“val”] - ‘attr’ 속성의 값에 “val” 포함되는 E태그 선택


E[attr^=“val”] - ‘attr’ 속성의 값이 “val” 시작하는 E태그 선택


E[attr$=“val”] - ‘attr’ 속성의 값이 “val” 끝나는 E태그 선택


E[attr*=“val”] - ‘attr’ 속성의 값에 “val”’ 포함되는  E태그 선택


E[attr|=“val”] - ‘attr’ 속성의 값이 정확하게 “val” 이거나 “val~” 시작되는 E태그 선택




반응형

'CSS > CSS 이론 및 기본' 카테고리의 다른 글

[css 이론 및 기본] box-sizing  (0) 2019.12.26
[css] reset.css  (0) 2019.11.24
[CSS] CSS란 무엇인가?  (0) 2018.04.06
반응형

CSS란 무엇인가?



1. CSS란?


- Cascading Style Sheets 는 documents가 사용자에게 어떻게 보여질까를 기술하는 언어이다.

- HTML이 정보를 표현한다면 CSS는 HTML문서를 시작적으로 이쁘게 꾸며주는 역할을 한다.




2. CSS로 기대되는 효과?


- 정보(HTML)와 디자인(CSS)를 분리하여 관리할 수 있다.

- 정보를 수정하지 않고 디자인만 변경할 수 있다.

> 태그마다 style 속성으로 주게 되면 소스코드가 지저분해 지는데, 분리하여 관리하게 되면 유지보수 및 가독성이 좋아진다.

- 검색엔진이 HTML을 해석 가능하도록 하기 때문에 더 많은 방문자들이 방문할 수 있도록 유도할 수 있다.

> 시각장애인을 위한 스크린리더 프로그램이 HTML문서를 해석하도록 할 수 있다.(웹접근성)




3. CSS로 HTML문서를 디자인하는 방법


- 외부 스타일 시트(External Style Sheet)

- 내부 스타일 시트(Internal Style Sheet)

- HTML 태그 내에 스타일 지정(Inline Styles)


3-1. 외부 스타일 시트(External Style Sheet)


- css라는 확장자를 가진 스타일 시트 파일을 만들고 이 파일을 HTML 문서에 연결하여 사용하는 방법

<head>
    <link rel="stylesheet" type="text/css" href="mystyle.css">
</head>

3가지 방법중 가장 좋은 방법으로, CSS의 장점을 모두 갖춘 형식이다.

분리된 디자인 파일로 관리하며 홈페이지 스타일을 일관성 있게 유지/보수하며 효율성을 극대화 할 수 있다.

단점으로는 외부 스타일 시트가 지나치게 복잡해지면 곤란하므로 전문성 있는 관리 노하우가 필요하다.


3-2. 내부 스타일 시트(Internal Style Sheet)


- HTML 문서 내에서 <head>와 </head>사이에 <style> 태그로 지정하는 방법

<head>
 <style type="text/css">
     Selector {property: value;}
    ex) h1 {color:red} 
 </style>
</head>

좋다고도 할 수도, 나쁘다고 할 수도 없는 스타일 적용방법이다.

그 이유는 내부 스타일 시트를 주는 것은 적절한 상황? 에서 좋은 방법이기 때문이다.


여러 문서에 적용되는 CSS의 경우는 외부 스타일 시트로 빼는게 좋지만,

한 가지 문서(HTML) 에는 따로 css를 빼는 것보다 현재 문서에만 적용할 때 유용하다.

(단, 스타일태그가 길어질 경우 외부 스타일 시트로 빼는것이 좋다.)


3-3. HTML 내에 스타일 지정(Inline Styles)


- 세가지 방법중 가장 범위가 좁아진 스타일 적용 방식이다.

<p style="font-size: 15px;">15픽셀사이즈로 디자인됩니다.</p>

위 스타일은 스타일을 지정하고싶은 태그에 직접적으로 주입해주는 방식이다.

style 속성으로, property: value 의 값을 가진다.

css의 장점인 내용과 스타일의 분리, 스타일에 대한 일괄 변경이 불가능한 가장 비효율적인(?) 방식이다.


하지만 특정 상황에서 직관적이고, 수정이 빠르고 간편한 이유로 간단한 테스트나 개발할때 사용된다.




4. CSS 적용 우선순위


- 위에서부터 차례대로 읽어들이는 HTML과 달리, CSS에는 우선순위 라는것이 적용된다.

- 적용방법의 우선순위로는 크게 외부스타일 < 내부스타일 < 인라인 스타일 순서로 작용한다.

- 자세히는 다음과 같이 작용한다.

> 1. 속성값 뒤에 !important; 를 붙인 속성 ( !important의 경우 종료마크인 ;(세미콜론) 안쪽에 작성되어야 한다.)

> 2. 태그에 직접적으로 style 속성을 넣는 방식 (인라인스타일 방식)

> 2. HTML문서 에서 style을 직접 지정한 속성 (내부스타일 방식)

> 3. #id 로 지정한 속성

> 4. .클래스, :추상클래스 로 지정한 속성

> 5. 태그이름 으로 지정한 속성

> 6. 상위 객체에 의해 상속된 속성 (외부스타일 방식)


- 6번에서 1번으로 갈 수록 우선순위가 높다. -> !important가 가장 강력하다.

- 6번째 우선순위에서 !important 를 붙인다면 해당 속성으로 적용된다.


* mystyle.css


@charset="UTF-8"


.test{color:red;}



* mystyle.html


~~~


<head>
       <link rel="stylesheet" type="text/css" href="mystyle.css">

<style>

.test {color:blue;}

</style>

</head>

<body>

<h1 style="color:orange" class="test">이 문단의 글자색상은 주황색으로 나오게 됩니다.</h1>

</body>



위 코드를 보면, 외부스타일로 test클래스를 가진 h1태그에 글자색상을 빨간색인 red로 설정하였다.

하지만 내부스타일인 <style> 태그로 인하여 색상이 파란색이 되어야 하지만,

내부스타일보다 우선순위인 인라인스타일 에 밀려 글씨는 주황색으로 나타나게 된다.


** 만약, mystyle.css 안에 내용이


.test {color:red !important} 와 같이 작성된다면, 강제로 우선순위가 첫번째가 되기 때문에, 빨간 글자로 나오게 된다.



[글 작성에 있어 출처 및 도움된 사이트]


https://ofcourse.kr/css-course/

https://developer.mozilla.org/ko/docs/Web/CSS/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0/CSS%EB%9E%80

https://opentutorials.org/course/45/2


반응형

'CSS > CSS 이론 및 기본' 카테고리의 다른 글

[css 이론 및 기본] box-sizing  (0) 2019.12.26
[css] reset.css  (0) 2019.11.24
[CSS] CSS 선택자(selector)  (0) 2018.04.24

+ Recent posts