2011-10-19 2 views
1

저는 CSSing 레이아웃을 사용하고 있으며 크기를 변경할 수있는 두 요소 사이에 디자인을 많이 사용했습니다. I.E.CSS를 사용하여 두 개의 폭이 변경되는 두 div 사이에 선을 배치합니다.

존             |             로그 아웃 존이 문제의 DIV의 왼쪽에 있고, 로그 아웃 오른쪽에

. 이름이 역동적이고 변경 가능하기 때문에 각 행의 중간에 행이 위치 할 것이라고 보장 할 수있는 방법이 있습니까? 아마 CSS 접근법을 종료하고 약간의 JavaScript 함수를 사용해야할까요? 좀 더 세부 사항에 대한 , 선이 두 가지 요소 가운데 하나에 나타납니다 그래서 (또는 둘 다 변화 크기) 테두리 권리로

p  |  logout 
john  |  logout 
david  |  logout 
jonathonan | logout 
reallylongname | logout 

작동하지 않습니다 편집

<div class="top"> 
    <p class="name">Welcome Jeremy Louelen-Boxen</p> 
    <p>|</p> 
    <p class="logout"><a href="#">Logout</a></p> 
</div> 

이것은 요소로부터의 정적 거리, 즉 포함 된 문자의 수에 따라 경계가 변경되어야하기 전에 요소의 패딩입니다. 당신의 도움이 모든

감사합니다, 데이브

답변

0
.top p{ 
    margin:0 10px 0 10px; 
    padding:0 10px 0 10px; 
    border-left:1px solid #000; 
} 

.top p:first-child{ 
    border-left: none transparent; 
} 
+0

다시 요소로부터 고정 된 거리, 덕분에 비록 – Djave

0

돈`t 사용 만하는 이유 :

.top .name { border-right: 1px solid black } 
+0

정확하게 요소의 너비에 따라 이동하지 않기 때문에 - 답변을 주셔서 감사합니다. – Djave

0

순수 CSS에서이 : 물론

.top p:after { 
    content: ' | '; 
} 
.top p:last-child:after { 
    content: ''; 
} 

,이 작동하지 않을 수 있습니다 오래된 브라우저에서.

0

해킹,하지만 작동합니다

.top { 
    overflow: auto; 
} 

.top > :first-child { 
    float: left; 
    width: 50%; 
    border-right: 1px solid gray; 
} 

.top > :last-child { 
    float: right; 
    width: 49%; 
    text-align: right; 
} 

라이브 데모 :http://jsfiddle.net/DrJyd/2/

+0

그게 멋지지만 내 divs 너비를 변경 (현재 첫 번째 단어가 두 번째 단어보다 훨씬 길어지고있다) 이것은 항상 중간에있을 것입니다. 문제를 설명하기 위해 추가 설명을 추가했습니다. – Djave

0
.top p{float:right} 
.top p.name{float:left} 

그것을 할 것이다 (당신은 더 이상 <p>|</p> 요소 것을 필요로하지 않는다)

+0

안녕하세요, 응답 주셔서 감사합니다, 그 것은 변수 너비의 두 요소 중간에 구분선 (a | 또는 경계선)이 있어야한다는 것입니다. 왼쪽과 오른쪽에 떠있는 플로트가 그들을 좌우로 가져올 것입니다. 그것의 중간에 수직 막대를 얻는 것은 제가 고심하고있는 것입니다. 감사합니다 – Djave

+0

로그 아웃은 항상 같은 길이 인 것처럼 보입니다. – albert

관련 문제