CSS Attribute Rule embed into element.style

………..

 

기술적으로는 w3에서 일단 정의는 해두었다.

 

근데 안된다.

대부분의 브라우저에서 지원을 않는다네…

 

찌밤 ㅠㅠ

 

이건 예제 소스…. 아래 링크에서 퍼옴.

<a href="test.html" style="{color: blue; background: white} 
			:visited {color: green}
			:hover {background: yellow}
			:visited:hover {color: purple}">Test</a>

Test

 

http://stackoverflow.com/questions/131653/how-do-i-embed-an-ahover-rule-into-a-style-attribute-in-the-middle-of-a

 

 

결국 저런거 쓰려면 자바스크립트나.. css따로 선언을 해주어야함…ㅠㅠ

Browser User Agent

http://chatii.tistory.com/75

정말 재밌게 정리해뒀다… ㅋㅋㅋ

아래는 전문

 

나는 당신의 브라우저를 알고 있다

우리가 사용하는 모든 브라우저는 고유의 User Agent, 또는 User Agent String이라고 불리는 것을 가지고 있습니다. 똑 부러지게 번역은 안 되지만, 일반적으로는 브라우저 정보라고 하거나 아니면 유저 에이전트, 사용자 에이전트라고 그대로 읽습니다. 이것은 어떤 웹 페이지에 접속했을 때 서버에게 브라우저의 종류와 버전, OS 등을 알려주는 역할을 하지요. 예를 들어 지금 이 페이지를 접속한 여러분의 User Agent String은 “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.28 (KHTML, like Gecko) Chrome/26.0.1397.2 Safari/537.28“입니다. 그런데 여기서 가장 앞에 있는 “Mozilla”의 의미는 무엇일까요? 나는 분명히 인터넷 익스플로러로 접속했는데 왜 “MSIE”가 아니라 “Mozilla”라고 나오는 것일까요? 브라우저 역사를 더듬어본다면 그 이유를 알 수 있습니다.


User Agent String의 역사(일명 삽질의 역사)

Mosaic 로고1993년, 최초의 그래픽 브라우저라고 불리는(실제로는 따로 있어요.) 모자이크가 세상에 등장했습니다. 이때 모자이크는 스스로를 “NCSA_Mosaic/2.0 (Windows 3.1)“이라고 불렀습니다.

NCSA_Mosaic/2.0 (Windows 3.1)

“나는 (Windows 3.1에서 구동되는) Mosaic 2.0이야!”

 

Netscape 로고1년 후 넷스케이프가 출시되었는데, 이는 자신을 “Mozilla/1.0 (Win3.1)“이라고 불렀습니다. 여기서 “Mozilla“는 넷스케이프의 코드명으로, Mosaic Killer라는 의미를 가지고 있습니다. 그리고 그 탁월한 기능 덕분에 넷스케이프는 실제로 이름값(Mosaic Killer)을 했지요.

Mozilla/1.0 (Win3.1)

“나는 Mozilla 1.0이야!”

 

IE 로고다시 1년이 지난 1995년에 MS에서는 인터넷 익스플로러(IE)를 내놓게 되는데, IE 스스로는 Netscape Killer가 되고 싶었습니다. 하지만 웹 마스터들이 듣보잡 IE를 익히기까지는 시간이 너무 많이 걸리기 때문에, MS는 변칙 전략을 사용합니다.  IE를 “Mozilla 호환 제품”으로 선포함으로써 넷스케이프를 사칭하는 것이었지요. 그래서 이름도 “Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)“라고 지었습니다.

Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)

“나는 Mozilla 1.22야! (사실은 MSIE 2.0이지롱! ㅋㅋㅋ)”

이후의 전개는 삽질의 연속입니다. (눈이 아프면 그냥 넘어가도 괜찮아요.)

Firefox 로고파이어폭스는 “Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0“, 카미노는 “Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825 Camino/0.8.1“, 시몽키는 “Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey/1.0“, Safari 로고사파리는 “Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5“라고 자신을 불렀습니다. Opera 로고언제나 정직한 오페라는 좀 다르네요. “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51” 또는 “Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51” 또는 “Opera/9.51 (Windows NT 5.1; U; en)” 셋 중에 사용자가 선택할 수 있도록 했습니다.

Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0

“나는 Mozilla 5.0이야! (사실은 Gecko 엔진을 사용하는 Firefox 1.0임. 속았지?)”

Opera/9.51 (Windows NT 5.1; U; en)

“나는 Opera 9.51이야!” – 이 얼마나 간결한가.


삽질의 절정, 구글 크롬(비하 의도는 없습니다)

Chrome 로고이렇게 삽질에 삽질을 거듭하다 보니 최근에 출시된 구글 크롬에 와서는 정말 가관입니다. 크롬 본인은 주장하길 “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13“이라고 하는데, 언뜻 봐서는 도저히 정체를 알 수가 없네요.

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13

“나는 Chrome이라고 하는 뉴비인데 사실은 Safari랑 좀 비슷하고, 그리고 나는 WebKit 엔진을 사용하는데 뭐 KHTML 엔진이라고 봐도 좋고, 근데 KHTML 엔진은 또 Gecko 엔진인 척하고, 근데 또 Mozilla라고 불러도 되고, 어쩌고저쩌고.”
(결론은 WebKit 엔진을 사용하는 Chrome이란 뜻임.)

어때요? 정말 삽질이지 않나요?


좀 줄여라

비록 MS가 먼저 시작했지만, 그것을 탓하고자 하는 게 아닙니다. 이런 복잡한 User Agent String은 90년대 당시에는 필요 있었을지는 몰라도, 지금 와서는 아무런 쓸모가 없습니다. 오히려 개발자만 골탕 먹이고 있지요. 나중을 생각한다면 지금이라도 합의를 봐서 간략하게 줄이는 게 좋겠습니다.


그럼 마지막으로, 이제 여러분은 각자 브라우저의 User Agent String을 읽을 수 있게 되었나요? 그렇다면 저의 삽질도 참 보람될 텐데요. 🙂


출처 :  History of the browser user-agent string, by Aaron Andersen
관련 자료 : Part of the “user agent string” of many browsers, 위키백과

HTML Event List

이벤트 발생
onabort 이미지 로딩에서 이탈하였을 때(다른 연결로 이동)
onactivate 개체의 activeElement 속성을 설정하였을 때
onafterprint 관련된 문서를 인쇄하거나 인쇄 미리보기를 후 즉시
onafterupdate 데이터 원본이 있는 개체가 성공적으로 업데이트되면
onbeforeactivate 개체의 activeElement 속성이 설정되기 바로 전에
onbeforecopy 선택된 내용이 시스템 클립보드(clipboard)로 복사하기 바로 전에
onbeforecut 선택된 내용이 시스템 클립보드(clipboard)로 잘라내기 바로 전에
onbeforedeactivate activeElement가 다른 개체로 이동하기 바로 전에
onbeforeeditfocus 편집할 수 있는 용기 개체의 제어가 선택되기 바로 전에
onbeforepaste 시스템 클립보드로부터 데이터를 붙여넣기하기 바로 전에
onbeforeprint 관련된 문서를 인쇄하거나 인쇄 미리보기하기 바로 전에
onbeforeunload 페이지가 언로드되기 바로 전에
onbeforeupdate 연관된 데이터가 업데이트되기 바로 전에
onbegin 이벤트에서 시간이 시작되면 엘레멘트에 발생된다.
onblur 마우스나 탭에 의한 항해로 개체가 초점(포커스)을 상실 했을 때
onbounce 내용이 개체의 한쪽 한계선에 도달하였을 때
oncellchange 데이터 제공자에서 데이터의 내용이 변경되었을 때
onchange 입력폼의 필드 내용이 변경되고 초점을 상실했을 때 발생
onchange colorpick 비헤이버에서 색상이 변경되면 발생된다.
onclick 왼쪽 마우스가 개체 위를 클릭하였을 때
oncontentready 비헤이버 첨부된 엘레멘트의 내용이 파싱(parse) 완료되면 발생
oncontentsave 비헤이버 첨부된 엘레멘트의 내용이 저장이나 복사되기 전에 발생
oncontextmenu 사용자 지역에서 오른쪽 마우스를 클릭하였을 때
oncontrolselect 사용자가 개체의 제어(control) 선택들 하려고 할 때
oncopy 선택된 내용이 시스템 클립보드(clipboard)로 복사하기 하였을 때
oncut 선택된 내용이 시스템 클립보드(clipboard)로 잘라내기 하였을 때
ondataavailable 데이터 원천 개체로 부터 데이터가 도착하면 주기적으로 발생
ondatasetchanged 데이터 원천 개체의 변경에 의한 감지가 있을 때
ondatasetcomplete 데이터 원천 개체로부터 모든 데이터를 받아 사용할 수 있을 때
ondatasetcomplete dataselect 비헤이버가 select의 내용을 차지하였을 때 발행
ondblclick 마우스가 개체 위를 두번 클릭하였을 때
ondeactivate activeElement가 현재의 개체에서 다른 개체로 이동하였을 때
ondetach 엘레멘트에서 첨부된 비헤이버가 제거되기 바로전에 발생
ondocumentready 비헤이버를 포함하는 문서가 파싱(parse)을 완료되었을 때 발생
ondrag 마우스를 눌러 끄는 동안 계속해서 원본 개체에 발생
ondragdrop NS 화일등의 개체를 창에 드롭다운 시켰을 때
ondragend 마우스를 눌러 끄는 동안 계속해서 원본 개체에 발생
ondragenter 사용자가 드래그하는 개체를 유효한 목표 드롭에서 놓았을 때
ondragleave 드래그하는 마우스를 유효한 목표에서 놓지 않고 이탈했을 때
ondragover 유효한 목표 위에서 드래그하는 동안 연속적으로 발생
ondragstart 개체를 왼쪽 마우스를 누른 상태에서 드래그를 시작하면
ondrop 드래그드롭 작업 중 마우스단추를 놓았을 때
onend 엘레멘트에서 시간이 중지되면 발생
onerror 런다임 오류가 발생하였을 때
onerror 무효한 속성값을 할당하거나 읽기전용에 할당하면 발생
onerror 무효한 속성값을 할당하거나 읽기전용에 할당하면 발생
onerror 속성에 무효한 값을 할당하거나 읽기전용에 할당할 때 발생
onerrorupdate 관련된 데이터가 업데이트되는 동안에 오류가 발생되면 발생
onfilterchange 스타일 필터가 변경되거나 변환을 완료하면 발생
onfinish 마퀴(MARQUEE)의 루프가 완료되면 발생
onfocus 마우스나 탭에 의한 항해로개체에 초점(포커스)이 주어 졌을 때
onfocusin 엘레멘트가 초점을 받았을 때
onfocusout 엘레멘트가 초점을 잃었을 때
onhelp 활성 윈도우에서 도움말을 위하여 F1 키를 누르면 발생
onhide 메디어 플레이어가 감춰지면 발생된다.
onkeydown 키를 개체 위에서 눌렀을 때 발생
onkeypress 키(key)를 개체 위에서 눌렀다 놓았을 때 발생
onkeyup 키를 개체 위에서 놓았을 때 발생
onlayoutcomplete 채워넣기가 끝나고 인쇄하거나 인쇄미리보기를 실행하면 발생
onload 개체를 로딩이 다 되었을 때
onload 문서를 다시 로딩할 때 원래의 엘레멘트에서 발생
onlosecapture 마우스에 의한 캡쳐(capture)가 상실되었을 때 발생
onmediacomplete 메디어와 연관된 엘레멘트의 로딩이 완료되면 발생
onmediaerror 엘레멘트의 메디어 파일의 로딩이 실패되었을 때 발생
onmedialoadfailed (불량)엘레멘트의 메디어 파일의 로딩이 실패되었을 때 발생
onmousedown 마우스가 개체 위를 눌렀을 때 발생
onmouseenter 사용자가 마우스포인터로 개체 위에 들어갔을 때 발생
onmouseleave 마우스포인터가 개체의 범위 밖으로 이동하면 발생
onmousemove 마우스가 개체 위에서 이동하였을 때
onmouseout 마우스가 개체 위에서 이탈하였을 때
onmouseover 마우스가 개체 위로 이동하였을 때
onmouseup 마우스가 개체 위 누른 것을 해제하였을 때
onmousewheel 마우스 굴림단추가 개체 위에서 회전할 때 발생
onmove 사용자나 스크립트로 창의 위치를 이동하였을 때
onmoveend 편집할 수 있는 개체의 이동이 중지되었을 때 발생
onmovestart 개체를 이동하기 시작하면 발생
onopenstatechange 메디어바 플레이어의 열린 상태가 변경될 때 발생
onoutofsync 엘레렌트가 연관된 시간과의 동기성을 상실하면 발생
onpaste 시스템 클립보드(clipboard)로부터 데이터를 붙여넣기하였을 때
onpause 엘레멘트의 시간이 일시중지(pause)하면 발생
onplaystatechange 메디어바 플레이어에서 그 연주 상태가 변경되었을 때 발생
onpropertychange 개체의 속성을 변경하면 그 개체에 발생
onreadystatechange 개체의 상태(state)가 변경되면 발생된다.
onrepeat 시간이 엘레멘트에서 반복되거나 다음번 작동이 시작될 때 발생
onreset 입력폼이 리셋트(reset) 되었을 때
onreset 시간이 begin 값이 되거나 resetElement가 호출되면 발생
onresize 사용자나 스크립트로 창의 크기를 조절하였을 때
onresizeend 사용자가 제어 선택된 개체의 크기 변경을 완료하면 발생
onresizestart 사용자가 제어 선택된 개체의 크기를 변경하기 시작하면 발생
onresume 시간개체가 일시중지에서 다시시작으로 회복되면 발생
onreverse 엘레멘트에서 시간 개체가 뒤로 플레이되면 발생
onrowclick rowover 비헤이버에서 마우스 커서가 줄을 선택하면 발생
onrowenter 줄이 변경되고 개체에 새로운 값이 있음을 나타내기 위하여 발생
onrowexit 현재 줄을 변경하기의 위한 데이터 원천 제어 바로 전에 발생
onrowout rowover 비헤이버에서 마우스 커서가 줄에서 나가면 발생
onrowover rowover 비헤이버에서 마우스 커서가 줄에 들어오면 발생
onrowsdelete 리코드세트(recordset)에서 줄들이 삭제될 상황이 되면 발생
onrowsinserted 현재의 리코드세트에 새로운 줄들이 삽입된 직후에 발생
onsave 웹페이지가 저장, 북마크되거나 다른 페이지로 항해해 가면 발생
onscroll 스크롤되는 개체에서 스크롤 바의 위치를 변경하였을 때 발생
onseek 엘레멘트에서 탐색(seek) 작업이 수행되면 발생
onselect 입력폼에서 입력 필드에서 문자열을 선택(select)하였을 때
onselectionchange 문서의 선택된 부분의 상태가 변경되었을 때 발생
onselectstart 개체가 선택되기 시작하면 발생
onshow 메디어바 플레이어가 보이게 되면 발생된다.
onstart MARQUEE 개체에서 반복하는 각 루프가 시작될 때 발생
onstop 사용자가 중지 단추를 클릭하거나 웹 페이지를 닫을 때 발생한다
onsubmit 입력폼(form)이 송신(submit) 되었을 때
onsyncrestored 엘레멘트와 그 관련 시간 사이의 동기화가 회복되면 발생
ontimeerror 시간을 지정하는 오류가 일어나면 발생
ontrackchange ASX 파일에서 정의한 playList에서 트랙이 변경되면 발생된다.
onunload 사용자가 페이지에서 이탈했을 때
onurlflip +time t:MEDIA 태그에 의해 ASF 파일이 플레이되면 발생

이건 퍼온거긴한데…
왠지 거기도 퍼놓은거같은기분….
일단 출처는 남겨둔다..