SPAN의 높이 속성을 설정하는 방법


88

미리 정의 된 높이로 다음 코드를 확장 가능하게 만들어야합니다.

<style>
.title{
   background: url(bg.gif) no-repeat bottom right;
   height: 25px;
}
</style>

<span class="title">This is title</span>

그러나 span 은 인라인 요소 이기 때문에 "height"속성은 작동하지 않습니다.

대신 div를 사용해 보았지만 위쪽 요소의 너비까지 확장됩니다. 그리고 너비는 유연해야합니다.

누구든지 이것에 대한 좋은 해결책을 제안 할 수 있습니까?

미리 감사드립니다.


1
제목에는 제목 태그 (h1, h2, h3, ...)를 사용해야합니다. 의미 상 더 정확합니다.
Pickels

1
예, 당신이 맞습니다 Pickels. 여러분의 도움에 감사드립니다. 이것은 나의 마지막 CSS입니다. 그것은 나를 위해 잘 작동합니다 : <style> h4 {display : inline-block; 확대 / 축소 : 1; * 디스플레이 : 인라인; 여백 : 0px; 높이 : 25px; } </ style>
Kelvin

답변:


142

그것을주고 display:inline-block당신이 원하는 것을 할 수 있도록해야 그 - CSS에.
호환성 측면에서 : IE6 / 7 쿼크 모드에서 다음과 같이 작동합니다.

IE 6/7은 자연스러운 디스플레이 인 인라인 요소에서만 값을 허용합니다.


그만한 가치가 있기 때문에 IE7은 inline-block.
Scott Cranfill

Np. @Scott : 나는 W3에서 그것을 보지 않는다-그들이 말하는 것은 여기에있다 :Note: No versions of Internet Explorer (including IE8) support the property values "inline-table", "run-in", "table", "table-caption", "table-cell", "table-column", "table-column-group", "table-row", or "table-row-group".
casraf

2
@henasraf-@Scott의 정답입니다. 빠른 속도
Nick Craver

2
인용 :IE 6/7 accepts the value only on elements with a natural display: inline.
casraf

1
아, span그때 적용하면 효과가있을 것 같아요 . 정보 주셔서 감사합니다, henasraf.
Scott Cranfill


13

이것은 모든 브라우저에서 display : inline-block이 작동하도록하는 것입니다.

이상하게도 IE (6/7)에서 "zoom : 1"로 hasLayout을 트리거 한 다음 디스플레이를 인라인으로 설정하면 인라인 블록으로 작동합니다.

.inline-block {
    display: inline-block;
    zoom: 1;
    *display: inline;
}

5

블록 요소로 만들고 싶지 않다고 가정하면 다음을 시도 할 수 있습니다.

.title  {
    display: inline-block; /* which allows you to set the height/width; but this isn't cross-browser, particularly as regards IE < 7 */
    line-height: 2em; /* or */
    padding-top: 1em;
    padding-bottom: 1em;
}

그러나 가장 쉬운 해결책은 단순히를 .title블록 수준 요소로 처리하고를 통해 적절한 제목 태그 <h1>를 사용하는 것 <h6>입니다.


0

스팬 { display: table-cell; height: (your-height + px); vertical-align: middle; }

스팬이 테이블 셀 (또는 해당 문제에 대한 다른 요소)처럼 작동하려면 높이를 지정해야합니다. 스팬에 높이를 지정했는데 제대로 작동하지만 원하는 작업을 수행하려면 높이를 추가해야합니다.


0

물론 또 다른 옵션은 자바 스크립트 (Jquery here)를 사용하는 것입니다.

$('.box1,.box2').each(function(){
    $(this).height($(this).parent().height());
})

-4

이 경우 왜 스팬이 필요합니까? 높이 스타일을 지정하려면 div를 사용할 수 있습니까? display: inline실제로 스팬과 동일한 작업을 수행하므로 동일한 문제가있을 수 있지만 으로 div를 시도 할 수 있습니다 .


3
또는, 내 방황을 모두 무시하고 henasraf의 대답을 사용하십시오 :)
Seth Petry-Johnson

반대 투표 댓글은 정당하게 기여하려는 사람들을 낙담시킵니다. 멈춰! 대신 건설적인 피드백을 제공하거나 문제에 대한 자신의 의견을 더 많이 제공하십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.