인라인 CSS 코드를 작성 해야하는 경우가 있으며 앵커에 호버 스타일을 적용하고 싶습니다.
a:hover
HTML 스타일 속성 내에서 인라인 CSS에서 어떻게 사용할 수 있습니까?
예를 들어 HTML 이메일에서 CSS 클래스를 안정적으로 사용할 수 없습니다.
인라인 CSS 코드를 작성 해야하는 경우가 있으며 앵커에 호버 스타일을 적용하고 싶습니다.
a:hover
HTML 스타일 속성 내에서 인라인 CSS에서 어떻게 사용할 수 있습니까?
예를 들어 HTML 이메일에서 CSS 클래스를 안정적으로 사용할 수 없습니다.
답변:
짧은 대답 : 당신은 할 수 없습니다.
긴 대답 :하지 말아야합니다.
클래스 이름 또는 ID를 지정하고 스타일 시트를 사용하여 스타일을 적용하십시오.
:hover
의사 선택기이며 CSS의 경우 스타일 시트 내에서만 의미가 있습니다. 선택 기준을 정의하지 않으므로 인라인 스타일에 해당하는 항목이 없습니다.
OP의 의견에 대한 답변 :
CSS 규칙을 동적으로 추가하는 데 유용한 스크립트 는 Javascript 를 사용하여 CSS를 전적으로 소유하기를 참조하십시오 . 주제에 대한 일부 이론에 대해서는 스타일 시트 변경을 참조 하십시오 .
또한 옵션 인 경우 외부 스타일 시트에 링크를 추가 할 수 있습니다. 예를 들어
<script type="text/javascript">
var link = document.createElement("link");
link.setAttribute("rel","stylesheet");
link.setAttribute("href","http://wherever.com/yourstylesheet.css");
var head = document.getElementsByTagName("head")[0];
head.appendChild(link);
</script>
주의 : 위는 헤드 섹션 이 있다고 가정합니다 .
style="{color:green;} :hover { color: red; }"
했으며 firefox는 링크를 녹색으로 표시했지만 호버를 무시했습니다. 크롬은 둘 다 무시했습니다. 지속적인 테스트는 의미가 없습니다.
onMouseOver
and onMouseOut
매개 변수 에서 JavaScript를 사용하여 스타일을 변경하면 동일한 효과를 얻을 수 있지만 둘 이상의 요소를 변경해야하는 경우에는 매우 비효율적입니다.
<a href="abc.html"
onMouseOver="this.style.color='#0F0'"
onMouseOut="this.style.color='#00F'" >Text</a>
또한 this
이 맥락에서 작동 하는지 확실하지 않습니다 . 로 전환해야 할 수도 있습니다 document.getElementById('idForLink')
.
<div onMouseOver="this.style.backgroundColor='#F8F8F8'" onMouseOut="this.style.backgroundColor='#FFFFFF'"> ...
과거 어느 시점에서 그것을 할 수 있습니다 . 그러나 지금 (동일한 표준의 최신 개정판, 후보 추천서에 따르면) 할 수 없습니다.
<a href="http://www.w3.org/" style="{color: #900} :link {background: #ff0} :visited {background: #fff} :hover {outline: thin red solid} :active {background: #00f}">...</a>
그러나 그것은 작동하지 않았다
나는 이것에 공헌하는 것이 늦었지만 아무도 이것을 제안하지 않는 것이 슬 sad 다. 실제로 인라인 코드가 필요하다면 이것이 가능하다. 호버 버튼에 필요했습니다. 방법은 다음과 같습니다.
.hover-item {
background-color: #FFF;
}
.hover-item:hover {
background-color: inherit;
}
<a style="background-color: red;">
<div class="hover-item">
Content
</div>
</a
이 경우 인라인 코드 : "background-color : red;" 호버의 스위치 색상이며 필요한 색상을 넣은 다음이 솔루션이 작동합니다. 호환성 측면에서 이것이 완벽한 솔루션이 아닐 수도 있지만 절대적으로 필요한 경우 작동합니다.
a:hover
CSS 규칙이 아닌 선택기의 일부 이므로 설명하는 내용을 정확하게 수행 할 수 없습니다 . 스타일 시트에는 두 가지 구성 요소가 있습니다.
selector {rules}
인라인 스타일에는 규칙 만 있습니다. 선택기는 현재 요소로 내재되어 있습니다.
선택기는 XML과 같은 문서의 요소를 일치시키는 일련의 기준을 설명하는 표현 언어입니다.
그러나 style
세트는 기술적으로 거의 모든 곳으로 갈 수 있기 때문에 가까이 갈 수 있습니다.
<html>
<style>
#uniqueid:hover {do:something;}
</style>
<a id="uniqueid">hello</a>
</html>
<html> </html>
태그로 감싸십시오
a) 인라인 스타일 추가
document.head.insertAdjacentHTML('beforeend', '<style>#mydiv:hover{color:red;}</style>');
b) 또는 조금 더 어려운 방법- "마우스 오버"추가
document.getElementById("mydiv").onmouseover= function(e){this.className += ' my-special-class'; };
document.getElementById("mydiv").onmouseleave= function(e){this.className = this.className.replace('my-special-class',''); };
참고 : font-size
Javascript의 다중 단어 스타일 (예 :)은 함께 작성됩니다 .
element.style.fontSize="12px"
이것은 최고의 코드 예입니다.
<a
style="color:blue;text-decoration: underline;background: white;"
href="http://aashwin.com/index.php/education/library/"
onmouseover="this.style.color='#0F0'"
onmouseout="this.style.color='#00F'">
Library
</a>
사회자 제안 : 우려를 분리하십시오.
HTML
<a
style="color:blue;text-decoration: underline;background: white;"
href="http://aashwin.com/index.php/education/library/"
class="lib-link">
Library
</a>
JS
const libLink = document.getElementsByClassName("lib-link")[0];
// The array 0 assumes there is only one of these links,
// you would have to loop or use event delegation for multiples
// but we won't go into that here
libLink.onmouseover = function () {
this.style.color='#0F0'
}
libLink.onmouseout = function () {
this.style.color='#00F'
}
인라인 의사 클래스 선언은 현재 CSS 반복에서 지원되지 않습니다 (그러나 내가 이해하는 바에 따르면 향후 버전에서 제공 될 수 있음).
지금은 가장 좋은 방법은 스타일을 지정할 링크 바로 위에 스타일 블록을 정의하는 것입니다.
<style type="text/css">
.myLinkClass:hover {text-decoration:underline;}
</style>
<a href="/foo" class="myLinkClass">Foo!</a>
지적했듯이 호버에 임의의 인라인 스타일을 설정할 수는 없지만 적절한 태그에서 다음을 사용하여 CSS 에서 호버 커서의 스타일을 변경할 수 있습니다 .
style="cursor: pointer;"
당신은 이것을 할 수 있습니다. 그러나 인라인 스타일이 아닙니다. 사용 onmouseover
및 onmouseout
이벤트 :
<div style="background: #333; padding: 10px; cursor: pointer"
onmouseover="this.style.backgroundColor='#555';" onmouseout="this.style.backgroundColor='#333';">
Hover on me!
</div>
방금 다른 해결책을 찾았습니다.
내 문제 : 바닥 글의 태그 <a>
뿐만 아니라 일부 슬라이드 / 기본 컨텐츠 뷰어 주위에 <a>
태그가 있습니다. IE에서 동일한 위치로 이동하기를 원하므로 onHover
링크가 아닌 경우에도 전체 단락에 밑줄 이 표시됩니다. 전체 슬라이드는 링크입니다. IE는 그 차이를 모른다. 또한 바닥 글에 밑줄과 색 변경이 필요한 실제 링크가 있습니다 onHover
. 색상을 변경하려면 바닥 글 태그와 함께 스타일을 인라인해야한다고 생각했지만 위의 조언은 이것이 불가능하다는 것을 암시합니다.
해결책 : 바닥 글 링크에 두 개의 다른 클래스를 주었고 내 문제가 해결되었습니다. 내가 가질 수 있었다 onHover
, 하나 개의 클래스에서 색상 변경을 슬라이드가 onHover
여전히 같은 시간에 바닥 글에 외부하는 HREF 및 슬라이드를 가질 수없는 색상 변경 / 밑줄이없는, 그리고!
이 게임은 꽤 늦었지만 HTML 이메일에서 언제 JavaScript를 사용 하시겠습니까? 예를 들어, 현재 근무중인 회사 (Abodee와 함께 운임)에서 대부분의 이메일 마케팅 캠페인에 가장 낮은 공통 분모를 사용합니다. JavaScript는 사용되지 않습니다. 이제까지. 어떤 종류의 전처리를 언급하지 않는 한.
관련 게시물에서 언급했듯이 "Lotus Notes, Mozilla Thunderbird, Outlook Express 및 Windows Live Mail은 모두 일종의 JavaScript 실행을 지원하는 것 같습니다.
이 기사를 작성한 기사 링크 : [ http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients]
또한 호버링은 어떻게 모바일 장치로 변환됩니까? 그래서 위의 답변을 좋아합니다.Long answer: you shouldn't.
이 주제에 대해 더 많은 통찰력을 가진 사람이 있으면 언제든지 정정하십시오. 감사합니다.
그래서 이것은 사용자가 찾고 있던 것이 아니지만이 질문에 대한 답을 찾고 뭔가 관련이 있다고 생각했습니다. 나는 그 안에 탭을위한 새로운 색상 / 호버가 필요한 많은 반복 요소를 가지고있었습니다. 내 솔루션의 핵심 인 핸들 바를 사용하지만 다른 템플릿 언어도 작동 할 수 있습니다.
몇 가지 색상을 정의하고 각 요소의 핸들 막대 템플릿으로 전달했습니다. 템플릿 상단에 스타일 태그를 정의하고 사용자 정의 클래스와 호버 색상을 넣었습니다.
<style type="text/css">
.{{chart.type}}-tab-hover:hover {
background-color: {{chart.chartPrimaryHighlight}} !important;
}
</style>
그런 다음 템플릿에서 스타일을 사용했습니다.
<span class="financial-aid-details-header-text {{chart.type}}-tab-hover">
Payouts
</span>
당신은 필요하지 않을 수 있습니다 !important
다양한 유형의 코드를 작성할 수 있습니다
먼저 이것을 쓸 수 있습니다
html
<a href="https://www.google.com/" onMouseOver="this.style.color='red'"
onMouseOut="this.style.color='blue'" class="one">Hello siraj</a>
CSS
.one{
text-decoration: none;
}
다른 방법으로 시도해 볼 수 있습니다
html
<a href="https://www.google.com/" class="one">Hello siraj</a>
CSS
.one{
text-decoration: none;
}
.one:hover{
color:blue;
}
.one:active{
color: red;
}
jquery에서 호버를 시도 할 수도 있습니다
자바 스크립트
$(document).ready(function(){
$("p").hover(function(){
$(this).css("background-color", "yellow");
}, function(){
$(this).css("background-color", "pink");
});
});
html
<p>Hover the mouse pointer over this paragraph.</p>
이 코드에는 jquery에 세 가지 함수가 있습니다. 먼저 jquery의 기본 기능인 함수를 준비한 다음 두 번째로 텍스트에 포인터를 가져 가면 색상이 변경되고 다음에이 함수에 호버 함수가 있습니다. 텍스트에 대한 포인터를 놓으면 색상이 달라지고 세 번째 함수입니다.
나는 자바 스크립트를 피해야했지만 서버 측 코드와 함께 갈 수 있습니다.
그래서 ID를 생성하고, 스타일 블록을 만들고, 해당 ID와의 링크를 생성했습니다. 예, 유효한 HTML입니다.
a {
text-decoration: none;
color: blue;
}
a:hover {
color: blue;
font-weight: bold;
}
<!-- some code in the interpreter you use, to generate the data-hover id -->
<style>
a[data-hover="rnd-id-123"] { color: green; }
a[data-hover="rnd-id-123"]:hover { color: red; }
</style>
<a data-hover="rnd-id-123">some link 1</a>
<br>
<!-- some code in the interpreter you use, to generate the data-hover id -->
<style>
a[data-hover="rnd-id-456"] { color: purple; }
a[data-hover="rnd-id-456"]:hover { color: orange; }
</style>
<a data-hover="rnd-id-456">some link 2</a>
유사 클래스 a:hover
는 외부 스타일 시트에서만 사용할 수 있습니다 . 따라서 외부 스타일 시트를 사용하는 것이 좋습니다. 코드는 다음과 같습니다
a:hover {color:#FF00FF;} /* Mouse-over link */
style
. 태그 만 사용하십시오 .
내 문제는 호버에서 다른 이미지로 교체 해야하는 많은 이미지 아이콘을 사용하는 웹 사이트를 구축하는 것입니다 (예 : 파란 이미지는 호버에서 적색으로 변합니다). 이를 위해 다음과 같은 솔루션을 제작했습니다.
.container div {
width: 100px;
height: 100px;
background-size: 100px 100px;
}
.container:hover .withoutHover {
display: none;
}
.container .withHover {
display: none;
}
.container:hover .withHover {
display: block;
}
<p>Hover the image to see it switch with the other. Note that I deliberately used inline CSS because I decided it was the easiest and clearest solution for my problem that uses more of these image pairs (with different URL's).
</p>
<div class=container>
<div class=withHover style="background-image: url('https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQrqRsWFJ3492s0t0NmPEcpTQYTqNnH188R606cLOHm8H2pUGlH')"></div>
<div class=withoutHover style="background-image: url('http://i.telegraph.co.uk/multimedia/archive/03523/Cat-Photo-Bombs-fa_3523609b.jpg')"></div>
</div>
한 쌍의 이미지가 들어있는 컨테이너를 소개했습니다. 첫 번째는 표시되고 다른 하나는 숨겨집니다 (display : none). 컨테이너를 가리키면 첫 번째 컨테이너가 숨겨지고 (display : none) 두 번째 컨테이너가 다시 표시됩니다 (display : block).