div 요소를 인라인으로 표시하려면 어떻게합니까?


254

이 HTML이 주어지면 :

<div>foo</div><div>bar</div><div>baz</div>

다음과 같이 어떻게 인라인으로 표시합니까?

푸 바 바즈

이건 아니야:



바즈

답변:


268

그것은 다른 것입니다 :

div.inline { float:left; }
.clearBoth { clear:both; }
<div class="inline">1<br />2<br />3</div>
<div class="inline">1<br />2<br />3</div>
<div class="inline">1<br />2<br />3</div>
<br class="clearBoth" /><!-- you may or may not need this -->


실제로 이것은 내가 인라인으로 올바르게 표시하는 것을 발견 한 유일한 방법이었습니다. 왜 부동 솔루션이 작동하지 않는지
모르겠습니다

23
여기서 CSS 클래스 이름을 예로 사용해서는 안됩니다. css-tricks.com/semantic-class-names
Berik

261

인라인 div는 웹의 괴물이며 스팬이 될 때까지 구타해야합니다 (10에서 9 번 이상).

<span>foo</span>
<span>bar</span>
<span>baz</span>

... 원래 질문에 대답합니다 ...


11
예를 들어, 요소의 왼쪽과 오른쪽에 여백을 추가하려는 경우와 같이 div를 인라인으로 표시하려는 경우가 있습니다. 나는 그것이 스팬으로 할 수 있다고 생각하지 않습니다. Steve는 아마도 인라인 대신 float을 사용해야합니다.
Darryl Hein

8
패딩 예, 여백 아님
Andreas Wong 8:20에

8
불행히도 HTML5는 div를 <span> 안에 넣는 것을 지원하지 않습니다. 나는 <span> s를 사용하여 섹션에 CSS 스타일을 넣었고 브라우저가 섹션을 블록으로 해석하지 않고 블록 레이아웃을 강제로 사용하지 않았습니다. 그러나 방금 오늘 페이지를 JQuery Mobile + HTML5로 이식하는 동안 <span> 내에 <div>가 있으면 HTML5 유효성 검사기가 HTML5가 유효하지 않다고 불평하므로 대신 <span> 태그를 사용하는 경우가 있음을 발견했습니다 적어도 HTML5에서는 인라인 <div>를 실행할 수 없습니다.
Kmeixner 2016 년

4
때로는 당신이 세상에 살고 있지만 당신이 만들지 않았고 CSS에서 변경할 수있는 유일한 것. 이 경우 style = "display : inline"이 훌륭하게 작동합니다.
Matthew Lock

3
div를 사용하여 '고착'되지 않은 경우 좋은 대답입니다. 그러나 div를 사용해야하지만 인라인 요소로 표시 해야하는 많은 이유가있을 수 있습니다.
Bobble

174

다음과 같이 작성하십시오.

div { border: 1px solid #CCC; }
    <div style="display: inline">a</div>
    <div style="display: inline">b</div>
    <div style="display: inline">c</div>


16
이것은 질문에 대한 정답이지만 허용되는 답변을 고려할 때 질문이 실제 시나리오를 해결하지 못한다고 생각합니다.
Steve Perks

34

이 질문과 답변을 두 번 읽은 후에는 편집 작업이 많이 진행되었다고 가정하고 충분한 정보를 제공하지 않아서 잘못된 답변을 받았다고 생각합니다. 내 단서는 br태그 사용에서 비롯됩니다 .

대릴에게 사과드립니다. class = "inline"을 style = "display : inline"으로 읽습니다. 의미 론적으로 의심스러운 클래스 이름을 사용하더라도 정답이 있습니다. ;-)

br텍스트 레이아웃이 아닌 구조적 레이아웃을 제공하기 위해 잘못 사용하는 것은 내가 좋아하는 것보다 너무 널리 퍼졌습니다.

인라인 요소보다 더 많은 요소를 넣으려면 인라인으로 만드는 대신 divs플로팅해야합니다 div.

플로팅 된 div :

===== ======= ==   **** ***** ******   +++++ ++++
===== ==== =====   ******** ***** **   ++ +++++++
=== ======== ===   ******* **** ****   
===== ==== =====                       +++++++ ++
====== == ======

인라인 div :

====== ==== ===== ===== == ==== *** ******* ***** ***** 
**** ++++ +++ ++ ++++ ++ +++++++ +++ ++++

전자를 따른다면 이것이 해결책이며 br태그를 잃어 버립니다 .

<div style="float: left;" >
  <p>block level content or <span>inline content</span>.</p>
  <p>block level content or <span>inline content</span>.</p>
</div>
<div style="float: left;" >
  <p>block level content or <span>inline content</span>.</p>
  <p>block level content or <span>inline content</span>.</p>
</div>
<div style="float: left;" >
  <p>block level content or <span>inline content</span>.</p>
  <p>block level content or <span>inline content</span>.</p>
</div>

이 div의 너비는 유동적이므로 동작을 제어하려면 자유롭게 너비를 지정하십시오.

고마워, 스티브


24

display:inline-blockIE6 / 7에 대한 여백 및 미디어 쿼리와 함께 사용 :

<html>
  <head>
    <style>
      div { display:inline-block; }
      /* IE6-7 */
      @media,
          {
          div { display: inline; margin-right:10px; }
          }
   </style>
  </head>
  <div>foo</div>
  <div>bar</div>
  <div>baz</div>
</html>

11

올바른 인라인 방법 <span>대신에 사용해야 합니다 . div는 블록 레벨 요소이므로 인라인 블록 레벨 요소가 필요합니다.<div>

요구 사항에 따라 html 코드는 다음과 같습니다.

<div class="main-div">
 <div>foo</div>
 <div>bar</div>
 <div>baz</div>`
</div>

이 작업을 수행하는 두 가지 방법이 있습니다


  • 간단한 사용 display:inline-block;
  • 또는 사용 float:left;

표시 속성을 display:inline-block;강제 로 변경했습니다

예 하나

div {
    display: inline-block;
}

예 2

div {
    float: left;
}

플로트를 지워야합니다

.main-div:after {
    content: "";
    clear: both;
    display: table;
}

7

언급했듯이 display : inline은 아마도 당신이 원하는 것입니다. 일부 브라우저는 인라인 블록도 지원합니다.

http://www.quirksmode.org/css/display.html#inlineblock


3
@NexusRex IE가 올바르게 작동하도록하려면 해결 방법이 있지만 표시 : 인라인이 정답입니다. 해결 방법은 다음과 같습니다. display : inline-block; * 디스플레이 : 인라인; * 줌 : 1; 확대 / 축소를 설정하면 IE가 요소를 블록 요소처럼 취급합니다.
Chris Stephens

7

"float : left"와 함께 래퍼 div를 사용하고 float : left도 포함하는 상자를 넣으십시오.

CSS :

wrapperline{
width: 300px;
float: left;
height: 60px;
background-color:#CCCCCC;}

.boxinside{
width: 50px;
float: left;
height: 50px;
margin: 5px;
background-color:#9C0;
float:left;}

HTML :

<div class="wrapperline">
<div class="boxinside">Box 1</div>
<div class="boxinside">Box 1</div>
<div class="boxinside">Box 1</div>
<div class="boxinside">Box 1</div>
<div class="boxinside">Box 1</div>
</div>

6

<span> ?


2
너비와 높이를 가질 수있는 블록 요소를 인라인하는 것에 대해 이야기하고 있다고 생각합니다. 텍스트와 인라인으로 흐를 배경 이미지가있는 div를 상상해보십시오.
NexusRex

6

괜찮습니다 :

<style type="text/css">
    div{
        position: relative;
        display: inline-block;
        width:25px;
        height:25px;
    }
</style>
<div>toto</div>
<div>toto</div>
<div>toto</div>

4

span을 사용하거나 div를 왼쪽으로 띄웁니다. 플로팅의 유일한 문제는 나중에 플로트를 지우거나 포함하는 div에 오버플로 스타일이 자동으로 설정되어 있어야한다는 것입니다


나는 우리가 텍스트 또는 다른 것과 인라인 인 div에 대해 이야기하고 있다고 생각합니다.
NexusRex

float : left를 사용하는 경우 div에서 overflow : auto를 사용하면 오버플로가 발생한 스크롤 막대가 어떻게 / 언제 재생됩니까?
cellepo

3

사람들은 이것이 끔찍한 아이디어라고 말하지만 실제로 주석이 달린 타일 이미지와 같은 것을하고 싶다면 실제로 유용 할 수 있습니다. 예를 들어 Picasaweb은이를 사용하여 앨범에 축소판을 표시합니다.
예를 들어 / 데모 http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/inline_block_quirks.html (클래스 goog-inline-block; 여기에서 ib로 약칭합니다)을 참조하십시오.

/* below is a set of hacks to make inline-block work right on divs in IE. */
html > body .ib { display:inline-block; }
.ib {display:inline-block;position:relative;}
* html .ib { display: inline; }
:first-child + html .ib { display:inline; }

CSS가 주어지면 div를 클래스 ib로 설정하면 마술처럼 인라인 블록 요소가됩니다.


3

세 개의 div를 포함해야합니다. 예를 들면 다음과 같습니다.

CSS

div.contain
{
  margin:3%;
  border: none;
  height: auto;
  width: auto;
  float: left;
}

div.contain div
{
  display:inline;
  width:200px;
  height:300px;
  padding: 15px;
  margin: auto;
  border:1px solid red;
  background-color:#fffff7;
  -moz-border-radius:25px; /* Firefox */
  border-radius:25px;
}

참고 : 경계 반경 속성은 선택 사항이며 CSS3 호환 브라우저에서만 작동합니다.

HTML

<div class="contain">
  <div>Foo</div>
</div>

<div class="contain">
  <div>Bar</div>
</div>

<div class="contain">
  <div>Baz</div>
</div>

div 'foo' 'bar'및 'baz'는 각각 'contain'div 내에 유지됩니다.


2
<style type="text/css">
div.inline { display:inline; }
</style>
<div class="inline">a</div>
<div class="inline">b</div>
<div class="inline">c</div>

2

CSS를 사용하지 않고도이 방법을 사용할 수 있다고 생각합니다.

<table>
    <tr>
        <td>foo</td>
    </tr>
    <tr>
        <td>bar</td>
    </tr>
    <tr>
        <td>baz</td>
    </tr>
</table>

현재 원치 않는 결과를 얻는 방식으로 블록 레벨 요소를 사용하고 있습니다. 따라서 span, small 등과 같은 요소를 인라인 할 수 있습니다.

<span>foo</span><span>bar</span><span>baz</span>

0

우리는 이렇게 할 수 있습니다

.left {
    float:left;
    margin:3px;
}
<div class="left">foo</div>
<div class="left">bar</div>
<div class="left">baz</div>


0
<div>foo</div><div>bar</div><div>baz</div>
//solution 1
<style>
    #div01, #div02, #div03 {
                                float:left;
                                width:2%;
    }   
 </style>
 <div id="div01">foo</div><div id="div02">bar</div><div id="div03">baz</div>

 //solution 2

 <style>
      #div01, #div02, #div03 {
                                  display:inline;
                                  padding-left:5px;
      }   
</style>
<div id="div01">foo</div><div id="div02">bar</div><div id="div03">baz</div>

 /* I think this would help but if you have any other thoughts just let me knw      kk */

-1

나는 너비를 고정 너비로 ​​만들어 페이지의 총 너비에 합산합니다. 고정 너비 페이지를 사용하는 경우에만 작동합니다. 또한 "부동".

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.