CSS에서 img 태그의 src 속성과 동등한 것을 설정할 수 있습니까?


532

srcCSS 에서 속성 값 을 설정할 수 있습니까? 현재, 내가하고있는 일은 다음과 같습니다.

<img src="pathTo/myImage.jpg"/>

나는 이런 식으로하고 싶어

<img class="myClass" />
.myClass {
    some-src-property: url("pathTo/myImage.jpg");

CSS 에서 또는 속성을 사용 하지 않고이 작업을 수행하고 싶습니다 .backgroundbackground-image:


1
이것은 CSS3에서 가능할 것입니다 : w3.org/TR/css3-values/#attribute
graphicdivine

7
이제 가능합니다. Chrome / Safari / Opera에서 테스트 : stackoverflow.com/a/11484688/632951
Pacerier

2
그러나 FireFox 30.0, Internet Explorer 11.0은 지원하지 않습니다
Laxmikant Dange

이 CSS 전용 솔루션은 모든 브라우저에서 나를 위해 작동했습니다 : stackoverflow.com/a/19114098/448816 , 'background-size : 100 %;'
mikhail-t

JS로 할 수 있습니다 getPropertyValue("--src"): jsfiddle.net/CustomElementsExamples/vjfpu3a2
Danny '365CSI'Engelman

답변:


881

사용하십시오 content:url("image.jpg").

전체 작업 솔루션 ( Live Demo) :

<!doctype html>

<style>
.MyClass123{
	content:url("http://imgur.com/SZ8Cm.jpg");
}
</style>

<img class="MyClass123"/>

테스트 및 작동 :

  • 크롬 14.0.835.163
  • 사파리 4.0.5
  • 오페라 10.6

테스트 및 작동 하지 않음 :

  • FireFox 40.0.2 (개발자 네트워크 도구를 살펴보면 URL이로드되지만 이미지가 표시되지 않음)
  • Internet Explorer 11.0.9600.17905 (URL이로드되지 않음)

7
@gotqn, 지금까지 Chrome Safari Opera 만 있습니다.
Pacerier

36
@EricG, 응용 프로그램마다 요구 사항이 다릅니다. 요구 사항에 맞지 않으면 사용하지 마십시오. 그렇다면 사용하십시오.
Pacerier

4
작동하지 않는 IE10은 끝이 없습니다. 우리는 IE7을 버립니다 (IE6에 대해서는 이야기하지 않겠습니다). 필요한 경우 IE8도 있습니다. 그러나 IE9-IE10 ... 아닙니다.
Rolf

11
에 할당 content을 지원하는 브라우저에서도 img동작을 변경합니다. 이미지는 크기 속성을 무시하기 시작하고 Chrome / Safari에서는 '이미지 저장'과 같은 상황에 맞는 메뉴 옵션을 잃습니다. 이는 content효율적으로 할당하면 대체img 요소에서와 같은 것으로 효과적으로 변환 되기 때문 <span><img></span>입니다.
Ilya Streltsyn

3
적절한 브라우저 지원이 없으면 유효한 답변으로 보이지 않습니다. 죄송합니다.
emachine

183

오늘 내가 찾은 해결책이 있습니다 (IE6 +, FF, Opera, Chrome에서 작동).

<img src='willbehidden.png' 
 style="width:0px; height:0px; padding: 8px; background: url(newimage.png);">

작동 방식 :

  • 너비와 높이가 더 이상 보이지 않을 때까지 이미지가 축소됩니다.
  • 그런 다음 패딩으로 이미지 크기를 '재설정'해야합니다. 이것은 16x16 이미지를 제공합니다. 물론 padding-left / padding-top을 사용하여 직사각형 이미지를 만들 수 있습니다.
  • 마지막으로 새로운 이미지는 배경을 사용하여 배치됩니다.
  • 새 배경 이미지가 너무 크거나 작 으면 background-size예를 들어 background-size:cover;할당 된 공간에 이미지를 맞추는 것이 좋습니다 .

또한 입력 이미지 제출에도 작동하며 클릭 할 수 있습니다.

라이브 데모보기 : http://www.audenaerde.org/csstricks.html#imagereplacecss

즐겨!


6
@RobAnu : 이것은 아주 잘 작동합니다 -jsfiddle
TimPietrusky

9
이것은 매력적이고 영리하지만 빈 DIV가 더 간단하다는 것을 당신에게 전달해야합니다.
Volomike

11
이 경우입니다. 그러나 HTML을 제어 할 수없고 그럼에도 불구하고 IMG를 조작하려는 경우가 있습니다. 이 솔루션도 작동합니다
RobAu

2
이미지에 src속성이 있으면 이것이 필요한 기술입니다. +
James Long

3
이 답변에 순위를 매기 지 않으면 일부 응용 프로그램의 솔루션 일 수 있지만이 방법에는 제한이 있습니다. 이미지 파일의 렌더링 크기를 제어 할 수 없습니다. 일반적으로 소스에 파일이 지정된 경우 이미지의 높이 너비를 제어 할 수 있습니다. 그러나 이것은 기본적으로 배경 이미지가있는 div와 다르지 않습니다. 여러분의 div가 이미지보다 크면 운이 없습니다.
TARKUS

113

CSS에서 이미지를 설정하는 가능한 방법 모음


CSS2:after가상 요소 또는 새로운 구문 ::after에서 CSS3 함께 content:속성 :

첫 번째 W3C 권장 사항 : 계단식 스타일 시트, 수준 2 CSS2 사양 1998 년 5 월 12 일
최신 W3C 권장 사항 : 선택기 수준 3 W3C 권장 사항 2011 년 9 월 29 일

이 메소드 요소의 문서 트리 컨텐츠 바로 뒤에 컨텐츠를 추가 합니다.

참고 : 일부 브라우저는 실험적으로 렌더링 content직접 이상의 속성을 일부 라도 최신 W3C 권고 정의하는 무시 요소 선택기 :

적용 대상 :before:after의사 요소

CSS2 구문 (앞으로 호환 가능) :

.myClass:after {
  content: url("somepicture.jpg");
}

CSS3 선택기 :

.myClass::after {
  content: url("somepicture.jpg");
}

기본 렌더링 : 원본 크기 (명확한 크기 선언에 의존하지 않음)

이 사양에서는 대체 된 요소 (예 : HTML의 IMG)와 : before 및 : after의 상호 작용을 완전히 정의하지 않습니다. 이것은 향후 사양에서 더 자세히 정의 될 것입니다.

그러나이 글을 쓰는 시점에도 <IMG>태그가 있는 동작 은 아직 정의되지 않았으며 해킹 및 비표준 호환 방식 으로 사용할 수 있지만와 함께 사용 <img>하지 않는 것이 좋습니다 !

훌륭한 후보 방법, 결론 참조 ...



CSS1background-image:속성 :

첫 번째 W3C 권장 사항 : 계단식 스타일 시트, 수준 1 1996 년 12 월 17 일

이 속성은 요소의 배경 이미지를 설정합니다. 배경 이미지를 설정할 때 이미지를 사용할 수 없을 때 사용할 배경색도 설정해야합니다. 사용 가능한 이미지가 있으면 배경색 위에 겹쳐집니다.

이 속성은 CSS의 시작부터 시작되었지만 여전히 언급 할 가치가 있습니다.

기본 렌더링 : 원본 크기 (확대 할 수없고 배치 만 가능)

그러나 ,

CSS3background-size:속성은 여러 스케일링 옵션을 허용하여 향상되었습니다.

최신 W3C 상태 : 후보 추천 CSS 배경 및 경계선 모듈 수준 3 2014 년 9 월 9 일

[length> | <percentage> | auto ]{1,2} | cover | contain

그러나이 속성을 사용하더라도 컨테이너 크기에 따라 다릅니다.

여전히 좋은 후보 방법은 결론을 참조하십시오 ...



CSS2list-style:속성과 함께display: list-item :

첫 번째 W3C 권장 사항 : CSS (Cascading Style Sheets) 수준 2 CSS2 사양 1998 년 5 월 12 일

list-style-image: 속성은 목록 항목 마커 (글 머리 기호)로 사용될 이미지를 설정합니다.

목록 속성은 목록의 기본 시각적 형식을 설명합니다. 스타일 목록에서 마커 유형 ( image , glyph 또는 number) 을 지정할 수 있습니다.

display: list-item—이 값은 요소 (예 : <li>HTML)가 기본 블록 상자와 마커 상자를 생성하게합니다.

.myClass {
    display: list-item;
    list-style-position: inside;
    list-style-image: url("someimage.jpg");
}

속기 CSS : ( <list-style-type> <list-style-position> <list-style-image>)

.myClass {
    display: list-item;
    list-style: square inside url("someimage.jpg");
}

기본 렌더링 : 원본 크기 (명확한 크기 선언에 의존하지 않음)

제한 사항 :

  • 상속은 '목록 스타일'값을 OL 및 UL 요소에서 LI 요소로 전송합니다. 목록 스타일 정보를 지정하는 것이 좋습니다.

  • 작성자 는 목록 마커에 대해 고유 한 스타일 (색상, 글꼴, 정렬 등)을 지정하거나 위치를 조정할 수 없습니다.

이 방법은 <img>요소 유형간에 변환을 수행 할 수 없으므로 태그에 적합 하지 않습니다. 여기에는 제한된 비준수 핵이 있습니다. 하지 않으며 Chrome에서 작동하지 않는 되지 않는 이 있습니다.

좋은 후보 방법, 결론 참조 ...



CSS3border-image:속성 추천 :

최신 W3C 상태 : 후보 추천 CSS 배경 및 경계선 모듈 수준 3 2014 년 9 월 9 일

다소 독특한 방식으로 크기를 지정하고 (이 경우에는 정의되지 않음) 지금까지 대체 경계 속성 (예 :)에 의존 하는 백그라운드 유형 방법 : border: solid

스크롤 메커니즘이 발생하지 않더라도 조상이나 뷰포트에 의해 아웃 세트 이미지가 여전히 잘릴 수 있습니다.

이 예는 이미지가 오른쪽 아래 모서리 장식 으로구성 되는 것을 보여줍니다 .

.myClass {
    border: solid;
    border-width: 0 480px 320px 0;
    border-image: url("http://i.imgur.com/uKnMvyp.jpg") 0 100% 100% 0;
}

적용 대상 : 내부 테이블 요소를 제외한 모든 요소 border-collapse: collapse

여전히 의 태그를 변경할 수 는 없지만 ( 여기서는 핵이 있습니다 ) 대신 장식 할 수 있습니다.<img>src

표준이 전파 된 후에 고려해야 할 좋은 후보 방법.



CSS3element()표기 작업 초안 은 언급 할 가치가 있습니다.

참고 :이 element()함수 는 실제 내용과 구조가 아니라 참조 된 요소 의 모양 만 재현합니다 .

<div id="img1"></div>

<img id="pic1" src="http://i.imgur.com/uKnMvyp.jpg" class="hide" alt="wolf">
<img id="pic2" src="http://i.imgur.com/TOUfCfL.jpg" class="hide" alt="cat">

우리는 사용합니다 렌더링 된 내용 두 가지 중 하나의 숨겨진 이미지를 이미지 변경 배경 에서 #img1에 기초 ID 선택기 CSS를 통해를 :

#img1 {
    width: 480px; 
    height: 320px; 
    background: -moz-element(#pic1) no-repeat;
    background-size: 100% 100%;
}

.hide {display: none}

참고 : 그것은 실험 적이고 -mozFirefox 의 접두사 에서만 작동하며 over background또는 background-imageproperties 만 지정되며 크기도 지정해야합니다.


결론

  1. 의미 적 내용이나 구조적 정보는 HTML로 전달됩니다.
  2. 스타일링 및 프리젠 테이션 정보는 CSS에 적용됩니다.
  3. SEO 목적을 위해 숨기지 마십시오 CSS에서 의미있는 이미지를 .
  4. 배경 그래픽은 일반적으로 인쇄 할 때 비활성화됩니다.
  5. 사용자 정의 태그 는 CSS에서 사용하고 스타일을 지정할 수 있지만 Internet Explorer의 기본 버전은 Javascript 또는 CSS 지침 없이 HTML5 태그를 스타일링 하지 않습니다 ( IE는 shiv 사용) .
  6. SPA (단일 페이지 응용 프로그램)는 설계 상 일반적으로 배경에 이미지를 통합합니다.

이미지 표시에 적합한 HTML 태그를 살펴 보겠습니다.

그만큼 <li>요소 [HTML4.01 +]

list-style-image와의 완벽한 유스 케이스display: list-item 메소드 .

<li>요소는 비어있을 수 있으며 흐름 내용을 허용하며 </li>끝 태그 를 생략 할 수도 있습니다.

제한 사항 : 스타일 지정이 어렵 width:거나 float:도움이 될 수 있음

<figure>요소 [HTML5 +]

그림 요소는 선택적으로 캡션이있는 일부 흐름 내용을 나타내며 (완전한 문장처럼) 자체 포함되며 일반적으로 문서의 기본 흐름에서 단일 단위로 참조됩니다.

요소는 내용없이 유효하지만을 포함하는 것이 좋습니다 <figcaption>.

따라서 요소를 사용하여 일러스트레이션, 다이어그램, 사진 , 코드 목록 등에 주석을 달 수 있습니다 .

기본 렌더링 : 요소가 왼쪽과 오른쪽 패딩으로 오른쪽 정렬됩니다!

<object>요소 [HTML4 +]

이미지를 포함하기 위해 작성자는 OBJECT 요소 또는 IMG 요소를 사용할 수 있습니다.

data속성은 필수이며 유효한 MIME 유형 을 값으로 가질 수 있습니다 !

<object data="data:x-image/x,"></object>

참고 : <object>CSS 에서 태그를 사용하는 트릭 은 사용자 정의 유효한 MimeType x-image/x과 데이터 없음 을 설정하는 것입니다 (값은 필수 쉼표 뒤에 데이터가 없음 ,)

기본 렌더링 : 300 x 150 픽셀이지만 크기는 HTML 또는 CSS로 지정할 수 있습니다.

그만큼 <SVG>태그

SVG 필요로 할 수있는 브라우저를 하고있다 <image>래스터 이미지 요소를

<canvas>요소 [HTML5 +].

width에 속성의 기본값 (300) , 그리고 height에 속성의 기본값은 150 .

<input>와 요소type="image"

한계 :

... 요소가 버튼임을 나타 내기 위해 요소가 버튼 모양으로 나타납니다.

텍스트가 없을 때 어떤 Chrome이 따르고 4x4px 빈 사각형을 렌더링

부분 솔루션, 설정 value=" ":

<input type="image" id="img1" value=" ">

또한 현재 작업중인 초안 인 HTML5.1 의 다음 <picture>요소도 살펴보십시오 .



큰 대답이지만 기본 프리미티브를 제공하는 플랫폼으로서 웹의 완전한 실패를 보여줍니다.
serraosays

26

이 CSS와 함께 빈 div 솔루션을 사용했습니다.

#throbber {
    background-image: url(/Content/pictures/ajax-loader.gif);
    background-repeat: no-repeat;
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
}

HTML :

<div id="throbber"></div>

인라인으로 표시하려면 어떻게합니까? "display : inline"을 추가하면 내 div 크기가 0x0이됩니다.
elsurudo 10

1
@elsurudo 인라인 요소에 너비와 높이를 설정하려면 display : inline-block을 사용하십시오
Erin Drummond

1
인기 답변은 Firefox에서 작동하지 않으므로 답변이 더 좋습니다! 그리고 그것은 분명하고 CSS 해킹이 없습니다.
Sergey Bogdanov

둘 이상의 이미지를 표시해야하는 경우 id 필드는 기술적으로 고유해야하므로 ID 대신 CSS 클래스 선택기를 사용하는 것이 이상적입니다.
mix3d

인쇄 설정에서 배경 그래픽을 끈 경우이 유형의 이미지가 제대로 인쇄되지 않습니다.
posfan12

14

제안 된 솔루션보다 더 나은 방법을 찾았지만 실제로 배경 이미지를 사용합니다. 호환 방법 (IE6을 확인할 수 없음) 크레딧 : http://www.kryogenix.org/code/browser/lir/

<img src="pathTo/myImage.jpg"/>

CSS :

img[src*="pathTo/myImage.jpg"] {

    background-image: url("mynewimg.jpg"); /* lets say 20x20 */
    width: 20px;

    display:inline-block;
    padding: 20px 0 0 0;
    height: 0px !important;

    /* for IE 5.5's bad box model */
    height /**/:20px;
}

이전 이미지는 표시되지 않고 새 이미지는 예상대로 표시됩니다.


다음 깔끔한 솔루션은 웹킷에서만 작동합니다.

img[src*="pathTo/myImage.jpg"] {

    /* note :) */
    content:'';
    display:inline-block;

    width: 20px;
    height: 20px;
    background-image: url("mynewimg.jpg"); /* lets say 20x20 */

}

이 방법은 깔끔하지만 실제로 표준을 준수합니까? W3C 페이지 말한다 content속성에만 적용 :before:after의사 클래스. 또한 IE7 또는 이전 버전을 지원 해야하는 경우 content지원이 존재하지 않는다고 생각 합니다. 여전히 매우 유혹적입니다.
jatrim

당신은 맞습니다. 방금 더 적합한 방법을 찾았습니다. 내 게시물 업데이트 중! 이제 투표 해주세요.) 하하.
EricG

업데이트 된 접근 방식은 컨텐츠에 의존하는 것보다 확실히 좋습니다. 원본 링크를 포함 해 주셔서 감사합니다. 통찰력이있었습니다. @RobAu의 답변은 실제로 업데이트 된 버전과 매우 유사합니다.
jatrim 2016 년

1
@jatrim이 content속성은 모든 요소에 적용됩니다. http://www.w3.org/TR/css3-content/#content
XP1

13

그들이 맞습니다. IMG는 컨텐츠 요소이고 CSS는 디자인에 관한 것입니다. 그러나 디자인 목적으로 일부 컨텐츠 요소 또는 특성을 사용하는 경우는 어떻습니까? 스타일 (CSS)을 변경하면 변경 해야하는 웹 페이지에 IMG가 있습니다.

CSS 스타일로 IMG 프리젠 테이션 (실제 이미지 아님)을 정의하기위한 솔루션입니다.

  1. 1x1 투명 gif 또는 png를 만듭니다.
  2. 해당 이미지에 IMG의 적절한 "src"를 할당하십시오.
  3. CSS 스타일에서 "배경 이미지"를 사용하여 최종 프리젠 테이션을 정의하십시오.

그것은 매력처럼 작동합니다 :)


5
-1 대답이 나쁘지는 않지만, 그는 그가 사용하고 싶지 않다고 구체적으로 언급합니다.background*
fresskoma

1
이것은 트릭입니다 ... 내 의견으로는 트릭은 브라우저에 의해 변경 될 것입니다 ... 그리고 아침에 당신은 당신의 웹 사이트에 지옥을 보게 될 것입니다 : D :)))
Mahdi Jazini

11

여기에 아주 좋은 해결책이 있습니다-> http://css-tricks.com/replace-the-image-in-an-img-with-css/

Pro (s) and Cons (s) :
(+)는 벡터와 함께 작동합니다 상대 너비 / 높이가있는 이미지 ( Robau답변 이 처리하지 않는 것)
(+)는 크로스 브라우저입니다 (IE8 +에서도 작동)
(+) CSS 만 사용합니다. 따라서 img src를 수정할 필요가 없습니다 (또는 이미 존재하는 img src 속성을 변경하거나 액세스하지 않으려는 경우).
(-) 죄송합니다 . 배경 CSS 속성을 사용 합니다 :)


이제는 올바른 솔루션입니다. 모든 브라우저에서 작동합니다. 감사합니다! 또한 언급해야 할 가치가 있습니다 : background-size : 100 %; 교체 이미지가 올바르게 표시되도록 위의 솔루션에서 CSS 클래스.
mikhail-t

9

HTML 코드에서 2 개의 이미지를 정의하고 표시 할 이미지 display: none;를 결정하는 데 사용할 수 있습니다.


나는 웹 응답 성이면서도 SEO를 유지하는 솔루션을 찾기 위해 광범위하게 검색했습니다. CSS에서 미디어 쿼리를 사용하여 사용되는 장치에 따라 이미지를 변경하고 싶었지만 내용을 HTML로 유지하고 싶었습니다. CSS에서 소스를 선언하는 것은 내가 원하지 않는 경로이므로 background-image옵션이 아닙니다. imgSEO 목적으로 태그를 원했습니다 . 당신의 대답은 매우 간단하고 우아하며 모든 장애물을 해결합니다! 브라보! 또한 사용자는 두 이미지를 모두 다운로드 할 필요가 없습니다. 또한, 원하는 수의 이미지를 추가 할 수 있습니다.
Xavier

지금까지 읽은 모든 대답은 스타일 시트에서 소스를 선언하거나 마크 업에 인라인 CSS를 사용해야합니다. 어느 쪽도 기뻐하지 않았습니다. 지저분한 코드!
Xavier

7

CSS를 통해 이미지 src 속성을 설정할 수 없습니다. 말할 수있는 가장 가까운 것은 background또는 background-image입니다. 어쨌든 다소 비논리적이므로 그렇게하지 않는 것이 좋습니다.

그러나 대상으로하는 브라우저에서 사용할 수있는 경우 사용할 수있는 CSS3 솔루션이 있습니다. content:url Pacerier의 답변에 설명 된대로 사용하십시오 . 아래의 다른 답변에서 다른 크로스 브라우저 솔루션을 찾을 수 있습니다.


1
왜 다운 투표? 이 답변은 허용 된 답변보다 더 정확합니다.
harsimranb

1
지금까지 가장 좋은 답변 : 아니요, CSS로는 할 수 없습니다.
Milche Patern

4

"제어"컨테이너에 여러 이미지를 넣고 대신 컨테이너 클래스를 변경하십시오. CSS에서 컨테이너 클래스에 따라 이미지의 가시성을 관리하는 규칙을 추가하십시오. img src단일 이미지의 속성을 변경하는 것과 동일한 효과를냅니다 .

HTML :

<span id="light" class="red">
    <img class="red" src="red.png" />
    <img class="yellow" src="yellow.png" />
    <img class="green" src="green.png" />
</span>

CSS :

#light         { ... }
#light         *        { display: none; }     // all images are hidden
#light.red     .red     { display: inline; }   // show red image when #light is red
#light.yellow  .yellow  { display: inline; }   // .. or yellow
#light.green   .green   { display: inline; }   // .. or green

CSS와 같은 모든 이미지를 미리로드 backround-image하지만 img srcJS를 통한 변경과는 다릅니다 .


3

대체 방법

.myClass {
background: url('/img/loading_big.gif');
}
<div class="myClass"></div>

3

HTML로 남겨 두어야 할 일부 데이터 는 CSS 에서 src 를 정의하는 것이 좋습니다 .

<img alt="Test Alt text" title="Title text" class="logo">

.logo {
    content:url('../images/logo.png');
}

2

내가 아는 한, 당신은 할 수 없습니다. CSS는 스타일에 관한 것이고 이미지의 src는 내용입니다.


3
요즘에는 종종 페이지를 스타일링하기 위해 이미지가 있습니다.
Lorenzo Polidori 9

2
이는 테두리, 배경 등으로 사용되는 이미지와 실제로 페이지 내용의 일부인 이미지간에 차이가있을 수 있음을 의미합니다. 도표, 기사 사진 등
Rhys van der Waerden

1
당신은 할 수 있고, 당신이 원하는 일반적인 유효한 경우가 있습니다.
ryan0

2

이전 솔루션을 반복하고 순수한 CSS 구현을 강조하는 것은 내 대답입니다.

다른 사이트의 컨텐츠를 소싱하여 제공되는 HTML을 제어 할 수없는 경우 순수 CSS 솔루션이 필요합니다. 제 경우에는 라이센스를 취득한 소스 컨텐츠의 브랜드를 제거하여 라이센스를 구매 한 회사에 대해 광고를 광고 할 필요가 없습니다. 따라서 다른 모든 것을 유지하면서 로고를 제거하고 있습니다. 이 계약은 고객의 계약에 따른다는 점에 유의해야합니다.

{ /* image size is 204x30 */
     width:0;
     height:0;
     padding-left:102px;
     padding-right:102px;
     padding-top:15px;
     padding-bottom:15px;
     background-image:url(http://sthstest/Style%20Library/StThomas/images/rhn_nav_logo2.gif);
}

2

나는 이것이 정말로 오래된 질문이라는 것을 알고 있지만 이것이 결코 이루어질 수없는 이유에 대한 적절한 추론을 제공하는 답변은 없습니다. 찾고있는 것을 "할"수는 있지만 올바른 방법으로는 할 수 없습니다. 유효한 img 태그 가지려면 src 및 alt 속성이 있어야 합니다.

따라서 src 속성을 사용하지 않는 img 태그를 사용하여이를 수행하는 방법을 제공하는 답변은 유효하지 않은 코드의 사용을 장려하고 있습니다.

요컨대, 구문 구조 내에서 합법적으로 원하는 것을 수행 할 수 없습니다.

출처 : W3 Validator


2

또는 당신은 내가 웹간에서 찾은 것을 할 수 있습니다.

https://robau.wordpress.com/2012/04/20/override-image-src-in-css/

<img src="linkToImage.jpg" class="egg">
.egg {
  width: 100%;
  height: 0;
  padding: 0 0 200px 0;
  background-image: url(linkToImage.jpg);
  background-size: cover;
}

이미지를 효과적으로 숨기고 배경을 채우십시오. 자바 스크립트를 사용하지 않고 확장 가능한 대체 텍스트와 배경을 가진 IMG 태그를 원한다면 어떨까요?

내가 지금하고있는 프로젝트에서 영웅 블록 나뭇 가지 템플릿을 만들었습니다.

<div class="hero">
  <img class="image" src="{{ bgImageSrc }}"
       alt="{{ altText }}" style="background-image: url({{ bgImageSrc }});">
</div>

1

배경 속성을 설정하지 않으려면 CSS 만 사용하여 이미지의 src 속성을 설정할 수 없습니다.

또는 JavaScript를 사용하여 이러한 작업을 수행 할 수 있습니다.


1

CSS를 사용하여 수행 할 수 없습니다 . 그러나 JQuery를 사용하는 경우 다음과 같은 방법으로 트릭을 수행 할 수 있습니다.

$("img.myClass").attr("src", "http://somwhere");

실제로, 그것은)) 여기에서이 같은 질문에 대한 답을 볼 수 있습니다 stackoverflow.com/questions/2182716/...
미하일-t

1

JS로 변환 할 수 있습니다.

$('.image-class').each(function(){
    var processing = $(this).attr('src');
    $(this).parent().css({'background-image':'url('+processing+')'});
    $(this).hide();
});

0

프로젝트의 상황에 따라 버튼에 이미지를 동적으로 추가하려는 경우? 결과에 따라 출처를 참조하십시오. 여기에서는 mvvm 디자인을 사용하여 Model.Phases [0] 값으로 조명 단계 값을 기반으로 전구 이미지를 버튼으로 채울지 여부를 결정할 수 있습니다.

이것이 도움이되는지 확실하지 않습니다. JqueryUI, Blueprint 및 CSS를 사용하고 있습니다. 클래스 정의를 사용하면 원하는 것을 기반으로 버튼의 스타일을 지정할 수 있습니다.

    <button>                           
  <img class="@(Model.Phases[0] ? "light-on": "light-off")" src="@(Model.Phases[0] ? "~/Images/LightBulbOn.png" : "~/Images/LightBulbOff.png")"/>                             
  <img class="@(Model.Phases[0] ? "light-on": "light-off")" src="@(Model.Phases[0] ? "~/Images/LightBulbOn.png" : "~/Images/LightBulbOff.png")"/>   
  <img class="@(Model.Phases[0] ? "light-on": "light-off")" src="@(Model.Phases[0] ? "~/Images/LightBulbOn.png" : "~/Images/LightBulbOff.png")"/>     


0

이것을 추가합니다 : 배경 이미지도 background-position: x y;(x 가로 y 세로)로 배치 할 수 있습니다 . (..) 내 경우 CSS :

(..) 
#header {
  height: 100px; 
  background-image: url(http://.../head6.jpg); 
  background-position: center; 
  background-repeat: no-repeat; 
  background-color: grey; 
  (..)
} 
(...)

0

HTMl 코드 :

<!DOCTYPE html>
<html>
     <head>
         <link type="text/css" rel="stylesheet" href="css destination" />
     </head>
     <body>
<!-- click-able pic with link -->
           <a href="site you want"> 
<!-- Take the off if you don't want click-able link -->
                <h1 id(or class)="nameOfClassorid">
                     <span>Text that is not important</span>
                </h1>
           </a>
      </body>
 </html>

CSS 코드 :

span {
     display: none;
}
h1 id or class {
     height: of pic;
     width: of pic;
/* Only flaw (so far) read bottom */
     background-image:url(/* "image destination" */);
}
h1 id or class:hover {
/* Now the awesome part */
     background-image:url(/* 'new background!!!' */);
}

며칠 동안 방과 후 html을 공부하고 있는데 어떻게해야하는지 알고 싶었습니다. 배경을 찾은 다음 2와 2를 합치십시오. 이것은 100 % 작동합니다. 필요하지 않은 것을 채우지 않으면 !!! 높이가 없으면 아무것도 지정하지 않기 때문에 높이를 지정해야합니다 !!! 이 기본 셸을 추가 할 수 있습니다.

예:

 <!DOCTYPE html>
 <html>
     <head>
         <link type="text/css" rel="stylesheet" href="style.css" />
     </head>
     <body>
           <a href="http:localhost"> 
                <h1>
                     <span>Text that is not important</span>
                </h1>
           </a>
     </body>
 </html>
span {
     display: none;
}
h1 {
     height: 100px;
     width: 100px;
     background-image:url("http://linuxlog.org/wp-content/uploads/2011/01/Ubuntu-Desktop-@-2011-01-11-191526-300x225.png");
}

h1:hover {
     height: 300px;
     width: 300px;
     background-image:url("http://cdn.css-tricks.com/images/ads/wufoo-600x600-red.png");
}

추신 : 나는 리눅스 사용자입니다;)


0

모든 방법에 따라 background또는 background-image가능성이 사용자와 문서를 인쇄 할 때 실패하는 것입니다 "인쇄 배경 색상과 이미지 " 장애인. 불행히도 일반적인 브라우저의 기본값입니다.

Bronx에서 제안한 유일한 인쇄 친화적이고 브라우저 간 호환 가능한 방법입니다.


0

최신 CSS 속성을 사용하여 CSS 정의에서 IMG src로드

<style>
  body {
    --imgid: 1025; /* optional default img */
  }

  .shoes {
    --imgid: 21;
  }

  .bridge {
    --imgid: 84;
  }

  img {
    --src: "//i.picsum.photos/id/"var(--imgid)"/180/180.jpg"
  }

</style>
<script>
  function loadIMG(img) {
    img.src = getComputedStyle(img)	// compute style for img
      .getPropertyValue("--src")		// get css property
      .replace(/[" ]/g, "");				// strip quotes and space
  }

</script>
<img src onerror=loadIMG(this) class=bridge>
<img src onerror=loadIMG(this) class=shoes>
<img src onerror=loadIMG(this)>

  • src<IMG> 의 빈 정의는 onerror 핸들러를 트리거합니다. loadIMG 함수
  • loadIMG 함수는 CSS 값을 계산합니다
  • 모든 불법 문자를 제거합니다
  • IMG.src를 설정합니다
  • CSS가 변경되면 이미지가 업데이트되지 않습니다! 다시 loadIMG를 호출해야합니다

JSFiddle : https://jsfiddle.net/CustomElementsExamples/vjfpu3a2/


관련 SO 답변 : WCPROPS



-3

HTML5를 사용하십시오 :)

<picture>
    <source srcset="smaller.jpg" media="(max-width: 768px)">
    <source srcset="default.jpg">
    <img srcset="default.jpg" alt="My default image">
</picture>

OP는 특히 CSS 솔루션으로 HTML 마크 업을 정리하려고합니다. 이 답변은 마크 업을 더 복잡하게 만듭니다.
webaholik
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.