CSS를 사용한 텍스트 테두리 (텍스트 테두리)


108

아래 이미지와 같이 텍스트 주위에 테두리를 통합하는 방법이 있습니까?

텍스트 테두리

답변:


222

여러 텍스트 그림자 사용 :

text-shadow: 2px 0 0 #fff, -2px 0 0 #fff, 0 2px 0 #fff, 0 -2px 0 #fff, 1px 1px #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff;

여기에 이미지 설명 입력

body {
  font-family: sans-serif;
  background: #222;
  color: darkred;
  }
h1 {
  text-shadow: 2px 0 0 #fff, -2px 0 0 #fff, 0 2px 0 #fff, 0 -2px 0 #fff, 1px 1px #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff;
}
<h1>test</h1>

또는 웹킷에서만 작동하는 텍스트 스트로크를 사용할 수 있습니다.

-webkit-text-stroke-width: 2px;
-webkit-text-stroke-color: #fff;

여기에 이미지 설명 입력

body {
  font-family: sans-serif;
  background: #222;
  color: darkred;
  }
h1 {
  -webkit-text-stroke-width: 2px;
-webkit-text-stroke-color: #fff;
}
<h1>test</h1>

또한 더 읽어 CSS-트릭있다.


주목할만한 점 :이 방법의 브라우저 간 기능을 테스트하십시오 ... IE에서 클라이언트와 관련하여 최소한 9 .. PNG 방식으로 갈 생각 중입니다.
ErickBest 2013 년

1
@ErickBest 두 번째 링크는 IE9 문제를 언급합니다. 이 페이지는 구글에서 찾기 어렵지 않았다 비록 caniuse.com/css-textshadow
AnnanFay

투명도가있는 텍스트를 잘못 표시합니다 (rgba 사용).
Alejandro Nava

14

확실한. CSS3를 사용할 수 있습니다 text-shadow.

text-shadow: 0 0 2px #fff;

그러나 모든 브라우저에 즉시 표시되지는 않습니다. Modernizr 와 같은 스크립트 라이브러리를 사용하면 대부분의 브라우저에서 제대로 작동하는 데 도움이됩니다.


1
나는 이미 그 선생님을 시도했지만 내가 필요한 것은 텍스트 주위에 단색 흰색입니다.
jho1086

8

나는 텍스트 그림자를 곱하는 것에 기반한 그다지 솔루션을 좋아하지 않으며, 실제로 유연하지 않으며, 추가 할 방향이 8 인 2 픽셀 스트로크에 대해 작동 할 수 있지만 3 픽셀 스트로크 방향이 16이되는 식입니다. 관리하기 정말 불편하지 않습니다.

올바른 도구가 존재합니다. SVG입니다 <text> .이 경우 브라우저의 지원 문제는 아무것도 없습니다. '텍스트 그림자 사용에도 자체 지원 문제 filter: progid:DXImageTransform가 있기 때문에 사용할 수 있거나 IE <10이지만 종종 예상대로 작동하지 않습니다.

나에게 가장 좋은 해결책은 구형 브라우저의 경우 획이없는 텍스트로 대체 된 SVG로 남아 있습니다.

이러한 종류의 접근 방식은 3.04, Opera 8, IE 9 이후 거의 모든 버전의 Chrome 및 Firefox, Safari에서 작동합니다.

text-shadowChrome 4.0, FF 3.5, IE 10, Safari 4.0, Opera 9 지원에 비해 훨씬 더 호환됩니다.

.stroke {
  margin: 0;
  font-family: arial;
  font-size:70px;
  font-weight: bold;
  }
  
  svg {
    display: block;
  }
  
  text {
    fill: black;
    stroke: red;
    stroke-width: 3;
  }
<p class="stroke">
  <svg xmlns="http://www.w3.org/2000/svg" width="700" height="72" viewBox="0 0 700 72">
    <text x="0" y="70">Stroked text</text>
  </svg>
</p>


1
솔루션을 공유해 주셔서 감사합니다. 나는 당신의 권리가 더 유연하다고 생각합니다. 그러나 대부분의 경우 CSS를 사용하는 것이 더 효율적입니다. 나중에 SVG를 사용해 보겠습니다.
jho1086

6
text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;

3
설명도 추가 할 수 있습니까?
Robert

5

다음은 다룰 가치가있는 모든 브라우저를 다룹니다.

text-shadow: 0 0 2px #fff; /* Firefox 3.5+, Opera 9+, Safari 1+, Chrome, IE10 */
filter: progid:DXImageTransform.Microsoft.Glow(Color=#ffffff,Strength=1); /* IE<10 */
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.