이

css 의 개념 , overload

over load 는 저그의 오버로더가 아니라는거는..
 
자바쪽 하신분은 그냥 눈요기정도로...
 
css는 cascade style sheet..
 
여기서 중요한게 cascade 라는 단어이고 cascade = overload  라는 개념은 중요합니다..
 
1.css
body{margin:0px}
 
2.css
body{margin:10px}
 
<link rel=..... href="1.css" />
<link rel=..... href="2.css" />
 
이러면 결론은 margin:10px이 적용됩니다.
 
즉 뒤에 나올수록 앞에 나온 내용을 덥어 씌웁니다.
 
1.css
body{margin:0px;padding:10px}
 
2.css
body{margin:10px}
 
<link rel=..... href="1.css" />
<link rel=..... href="2.css" />
 
이러면 결론은 body{margin:10px;padding:10px}
 
겹치는 부분만 변경해서 margin: 에 대해 정의한 부분만 변경되었습니다.
 
 
그렇다면
 
<style>
body{margin:30px}
</style>
<link rel=..... href="1.css" />
<link rel=..... href="2.css" />
 
결론은 body{margin:30px;padding:30px}
 
외부스타일 쉬트 보다는 내부적으로 정의한 <style> 이 더 우선권이 높습니다.
 
즉 <style>에서 정의한 내용이 외부 스타일 쉬트의 정의를 overload 합니다.
 
물론 <body style="margin:30px;padding:30px">  이렇게 정의할 경우 무조건 이 스타일이 적용됩니다.
 
위 내용은 overload 개념이라고 해야 하는게 맞는지 우선순위 라고 해야 맞는지는 정확하지는 않지만, 
 
하여간 동일하게 정의된 스타일을 다른 동일한 정의로 교체 할 수는 있습니다.
 
cascade의 두번째 의미는
 
<table style="text-align:center">
<tr>
<td>aa</td>
</table>
 
했을 경우에 자식태그들도 모두 동일하게 text-align:center 속성을 물려 받게 됩니다.
 
즉 위의 노드의 스타일을 그대로 하위 노드가 물려 받게 됩니다.
 
 
 
자바스크립트도 이러한 오버로딩을 지원합니다.
 
var test = function(){}
var test = function(){}
 
에러가 나지 않고 test라는 함수는 정의되었습니다.
 
var test = function(){alert('1');}
var test = function(a){alert('2')}
var test = function(a,b){alert('3')}
 
이 3개의 함수는 각각 다른 함수이며 js 에러가 발생하지 않습니다.
test();  // 1
test('adfadf') ; // 2
test('adfad', 'adfadfad'); //3
test('adfad', 'adfadf', 'adfad'); // 3
 
overload는 인자의 갯수에 의해서 실행될 함수를 결정짓는 방법이 정확한 의미 일것 같습니다.
 
php 에서는 이러한 오버로딩을 지원하지 않습니다.
 
function a(){}
function a($name){}
 
warning: can't redeclare function a  라는 에러 메시지를 보게 됩니다.
 
이것을 피하기 위하여
function a($name='', $addr='', $age='', $sex=''){};
 
이렇게 독특하다면 독특한 함수를 만들게 되고, 나중에는 저 변수들이 무지하게 헷갈리게 되는 경우가 종종 있습니다.
 
class 도 동일한 이유로 같은 클래스를 정의 할수 없습니다.
 
class a{}
class a{}
 
에러가 납니다.
 
문제는
 
class a{
  function test(){}
}
 
class b extends a{
  function test(){}
}
 
즉 어떠한 경우에도 function test() 가 두번 나와서는 안되고 // abstract나 interface는 예외적으로..
 
5.3버젼 이전에서는  에러가 났었는데,
 
php 5.3 에서는 저러한 경우가 에러가 안나게 됩니다..
 
문득 저렇게 정의 햇는데 에러가 안난다는것을 우연히 알게되서 ( 그전까지는 저렇게 정의 하면 에러가 났던 걸로)
 
함 적어 봤습니다.
 
ps: 스타일 쉬트의 우선순위는
 
inline style : <span style=""> 정의한게 가장 높습니다.
 
내부 스타일 : <style></style> 에서 정의 한게 그 다음
 
외부 스타일 : <link...> 에서 정의한게 그 다음.
 
궁금한건 <style>@import url('');</style> 이경우의 우선순위는 잘 모르겠습니다.
 
span{} : 10점
.blue{} : 100점
span.blue{} : 110점
#blue{} : 1000점
span#blue.blue{} 11100점
td#member.member span#blue.blue{} : 2220점.
 
위와 같이 점수에 의해서 적용될 스타일이 결정지어지게 됩니다.
 
크롬에서 f12 눌러서 보여지는 스타일중에서 --- 이렇게 적용안된다고 표시되어 있는 부분들은 우선권이 낮기 때문에
 
무시되어 졌다는 의미입니다.
 
.. important!    // 이 표시는 중요한것 같은데 아직 의미가 정립안되서 안쓰는 중입니다.
|

댓글 2개

<!doctype html> 에서 head 외에 <style> 은 무시될 수 있습니다.

!important 는 물 흐르듯 내려오는 style 을 무시하고 현재 것을 사용한다라는 의미로
<style>
body{color:red !important;}
body{color:blue}
</style>
이렇게 하면 body 의 색은 기존 처럼 물 흐르듯 위에서 아래로 글자 색이 blue 가 아닌 red 를 먹게 됩니다.
!important 는 잘쓰면 좋지만...
잘못사용하면 완전한 독! 이 됩니다. css 가 꼬일수 있어요...
특히 협업 시 또는 다른사람에게 인수인계 시...
인계받은 사람이 멘붕이 올 수도... ㅎㅎㅎㅎ
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
13-12-07 조회 3,087
13-12-06 조회 2,602
13-12-06 조회 3,146
13-12-06 조회 2,724
13-12-06 조회 2,942
13-12-06 조회 2,629
13-12-06 조회 3,375
13-12-06 조회 3,698
13-12-06 조회 2,716
13-12-06 조회 2,666
13-12-06 조회 3,753
13-12-05 조회 2,707
13-12-05 조회 3,309
13-12-05 조회 3,167
13-12-05 조회 3,573
13-12-05 조회 3,476
13-12-04 조회 8,295
13-12-03 조회 3,447
13-12-02 조회 2,729
13-12-02 조회 2,582
13-11-30 조회 2,523
13-11-29 조회 2,779
13-11-28 조회 2,994
13-11-27 조회 3,594
13-11-27 조회 2,984
13-11-27 조회 3,366
13-11-27 조회 2,517
13-11-27 조회 2,688
13-11-27 조회 4,729
13-11-26 조회 3,978
13-11-25 조회 3,467
13-11-25 조회 5,270
13-11-23 조회 2,631
13-11-23 조회 4,730
13-11-23 조회 4,283
13-11-23 조회 4,051
13-11-23 조회 3,994
13-11-22 조회 3,003
13-11-22 조회 3,685
13-11-22 조회 3,545
13-11-22 조회 3,097
13-11-22 조회 5,501
13-11-21 조회 2,735
13-11-21 조회 3,227
13-11-20 조회 3,603
13-11-19 조회 4,038
13-11-19 조회 3,047
13-11-19 조회 3,661
13-11-19 조회 3,009
13-11-19 조회 4,772
13-11-18 조회 3,048
13-11-18 조회 2,859
13-11-18 조회 3,178
13-11-18 조회 4,917
13-11-18 조회 4,316
13-11-18 조회 6,778
13-11-18 조회 4,001
13-11-18 조회 4,415
13-11-18 조회 3,791
13-11-18 조회 3,851
13-11-18 조회 3,123
13-11-16 조회 3,158
13-11-15 조회 4,402
13-11-15 조회 3,173
13-11-14 조회 2,920
13-11-14 조회 3,677
13-11-14 조회 4,044
13-11-13 조회 3,176
13-11-13 조회 3,223
13-11-13 조회 3,398
13-11-13 조회 4,268
13-11-13 조회 3,095
13-11-12 조회 3,410
13-11-12 조회 5,612
13-11-07 조회 3,152
13-11-07 조회 3,124
13-11-06 조회 3,086
13-11-05 조회 3,787
13-11-05 조회 3,563
13-11-05 조회 6,603
13-11-05 조회 3,541
13-11-04 조회 3,148
13-11-04 조회 3,174
13-11-04 조회 2,953
13-11-02 조회 3,611
13-11-02 조회 3,233
13-11-01 조회 3,484
13-11-01 조회 2,865
13-11-01 조회 3,015
13-10-31 조회 3,086
13-10-31 조회 3,484
13-10-31 조회 3,880
13-10-31 조회 3,063
13-10-30 조회 3,368
13-10-30 조회 7,627
13-10-30 조회 5,446
13-10-30 조회 3,341
13-10-29 조회 3,180
13-10-29 조회 4,339
13-10-29 조회 3,596