이 범위를 div의 오른쪽에 맞추는 방법은 무엇입니까?


151

다음 HTML이 있습니다.

<div class="title">
    <span>Cumulative performance</span>
    <span>20/02/2011</span>
</div>

이 CSS와 함께 :

.title
{
    display: block;
    border-top: 4px solid #a7a59b;
    background-color: #f6e9d9;
    height: 22px;
    line-height: 22px;
    padding: 4px 6px;
    font-size: 14px;
    color: #000;
    margin-bottom: 13px;
    clear:both;
}

이 jsFiddle을 확인하면 http://jsfiddle.net/8JwhZ/

이름과 날짜가 서로 붙어 있음을 알 수 있습니다. 날짜를 오른쪽에 맞추는 방법이 있습니까? 나는 float: right;두 번째 시도했지만 <span>스타일을 망쳐 놓고 날짜를 둘러싸는 div 외부로 밀어 넣습니다.


2
HTML을 수정할 수 있습니까?
Phrogz

3
다른 객체와 관련하여 무언가를 띄우려면 플로터가 비 플로터 앞에 있어야합니다. 날짜는 제목 앞과 오른쪽에 있어야합니다.
Josh Kovach

답변:


246

HTML을 수정할 수있는 경우 : http://jsfiddle.net/8JwhZ/3/

<div class="title">
  <span class="name">Cumulative performance</span>
  <span class="date">20/02/2011</span>
</div>

.title .date { float:right }
.title .name { float:left }

CSS는 단순하고 깔끔합니다. 둘 다 추가해야합니다. 또한 바이올린에는 매우 약한 솔루션이 포함되어 있습니다. jsfiddle.net/8JwhZ/2090
Risord

9
또는 인라인을 원한다면 (I did)<span style="float: right">
Mark

51

수레 작업은 약간 지저분합니다.

flexbox로 다른 많은 '사소한'레이아웃 트릭을 수행 할 수 있습니다.

   div.container {
     display: flex;
     justify-content: space-between;
   }

2017 년에는 레거시 브라우저를 지원하지 않아도되는 경우이 솔루션이 선호됩니다 (float보다) : https://caniuse.com/#feat=flexbox

다양한 float 사용법이 flexbox와 비교되는 방식을 확인하십시오 ( "경쟁 답변이 포함될 수 있습니다") : https://jsfiddle.net/b244s19k/25/ . 여전히 플로트를 사용해야하는 경우 세 번째 버전을 권장합니다.


이것은 내가 사용하기로 선택한 것입니다. 설정 float: left;하고 float: right;간격을 두려는 요소가 포함 된 범위를 명심 하십시오.
Ran Lottem '11

1
이 답변의 핵심 메시지는 "float는 유해한 것으로 간주되며"절대 사용해서는 안된다는 것입니다 (일부 드문 예외가 있음). 왜 그것이 좋은 생각이라고 생각하는지 분명히 알 수 있습니까?
Risord

1
float내부 요소에 필요 하다고 생각 했기 때문에 바이올린 예제에 정의되어 있다고 생각했기 때문에 정의 #testD되지 않았습니다. 내 잘못이야!
Ran Lottem '11

25

플로트에 대한 대체 솔루션은 절대 위치 지정을 사용하는 것입니다.

.title {
  position: relative;
}

.title span:last-child {
  position: absolute;
  right: 6px;   /* must be equal to parent's right padding */
}

바이올린 도 참조하십시오 .


5

html을 수정하지 않고도이 작업을 수행 할 수 있습니다. http://jsfiddle.net/8JwhZ/1085/

<div class="title">
<span>Cumulative performance</span>
<span>20/02/2011</span>
</div>

.title span:nth-of-type(1) { float:right }
.title span:nth-of-type(2) { float:left }

4

없이 flexbox를 사용하는 솔루션 justify-content: space-between.

<div class="title">
  <span>Cumulative performance</span>
  <span>20/02/2011</span>
</div>

.title {
  display: flex;
}

span:first-of-type {
  flex: 1;
}

flex:1첫 번째에 사용할 때 <span>나머지 전체 공간을 차지하고 두 번째 <span>를 오른쪽으로 이동합니다 . 이 솔루션의 바이올린 : https://jsfiddle.net/2k1vryn7/

여기 https://jsfiddle.net/7wvx2uLp/3/ 두 flexbox 접근 방식의 차이점은 flexbox with justify-content: space-between와 flexbox with flex:1on the first <span>입니다.

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