2010-12-22 3 views
10

웹 브라우저에서 인쇄 할 수있는 보고서를 작성 중입니다. 하단에는 수신자가 입력 할 입력란이 있으므로 밑줄이 그어져 있습니다. 차라리 특정 수의 밑줄을 볼 필요가 없으며 어쨌든 그들 사이에 간격이있는 것 같습니다.CSS에서 빈칸에 밑줄을 긋는 방법?

내가 ...

금액이 지불되어가는 오전 : $ _ __ _ __ _ __ _ __ _ __ _ ___

지금까지이 CSS를 관리했습니다 :

<div> 
    <p style="border-bottom: 1px solid black;"> 
     Amount Paid: $ 
    </p> 
</div> 

그 부모의 가장자리에 선을 그립니다 div - 내가 원하는. 그러나, "Amount Paid : $"아래에 선을 그으므로 원하지 않습니다. 나는 실패를 생각했습니다 등 p의, span의의 모든 조합 : 나는 국경을 핵 span에 텍스트를 넣을 경우

, 아직도의 일부이기 때문에 내 생각, 중요하지 않습니다 p이고 테두리는 여전히 그려져 있습니다.

텍스트 뒤에 스팬에 밑줄을 추가 할 수는 있지만 작동하지 않습니다. 테두리 스타일이 p 요소에있을 때만 공백에 밑줄을 긋기를 원합니다.

<p> 
    <span>Amount Paid: $ </span> 
    <span style="border-bottom: 1px solid black;"> </span> 
</p> 

는 아무것도 실행하지 않습니다 : 나는 spanp를 교체 할 경우

마찬가지로, 그것은 국경 모든 방법을 확장해야한다는 메모를하지 않습니다. 선은 그려지지 않습니다. 두 번째 범위에 문자를 추가하면 해당 문자가 그 아래에 그려지지만 그 이상은 표시되지 않습니다. 그리고 p을 div 또는 span과 같은 다른 것으로 바꾸면 다음 중 하나라도 작동하지 않는 것 같습니다.

아이디어가 있으십니까? 미리 감사드립니다.

+0

유효한, * 아니 ** ** 표를 사용하는 것이 좋습니다. 표 형식의 데이터로 작업하고 있습니까? (즉, 합계가있는 일련의 거래). – zzzzBov

+0

당신이 맞을 것 같아요, 그것은 표 형식의 데이터입니다 ... 단 세 줄. 원래 보고서의 밑줄은 칼럼이 끝날 곳을 벗어나서 확장되어서 칼럼 등을 다루기보다는 그것을 버렸습니다. 그러나 나는 그것을 시도 할 수있었습니다. – Andrew

답변

7

두 번째 범위의 display (CSS)을 inline-block으로 변경하고 width (CSS)으로 설정합니다.

UPD :

또는 시도 무언가 같이 :

<p style="width: 200px; display: table;"> 
    <span style="display: table-cell; width: 100px;">Amount Paid: $ </span> 
    <span style="display: table-cell; border-bottom: 1px solid black;"></span> 
</p> 
+0

꽤 잘 작동하지만, 너비를 설정해야합니다. 남은 크기의 태그로 확장 되길 바랬지 만이 작업을 할 수있었습니다. – Andrew

+0

@Andrew :이 경우 부모 div와 span의'display '를 각각'table'과'table-cell'로 변경할 수 있습니다. 실제로, 최근에는 비슷한 문제가 있었고'디스플레이 '로 놀아 보니 성공했습니다. –

+0

필자는 인라인 블록을 사용하기로 결정했고, 테이블 셀을 던지기보다는 '순수한'것처럼 보였습니다. 고마워요 :) – Andrew

1

수동 라인의 폭을 지정 괜찮다면, 당신은이 작업을 수행 할 수 있습니다

<span style="border-bottom: 1px solid black; padding-left: 50px">&nbsp;</span> 
1

당신이 만약 구형 브라우저 (IE6 세대)에 대한 지원은 걱정하지 않으므로, min-width 속성을 사용하여 필요한만큼 확장되는 빈 공간을 기본 크기로 가져옵니다. 제대로 분 너비를 처리하도록 반대가 기본 폭으로 치료 (버그) 행동의에 IE7을 위해, 당신은 최소 너비 요소에 overflow: visible을 추가해야 할 거라고

<p> 
    <span>Amount Paid: $ </span> 
    <span style="border-bottom: 1px solid black; min-width: 100px;"> </span> 
</p> 

참고.

+0

좋은 답변입니다. 그러나 최소 너비는 'Google 크롬'에서 '표시'가 '인라인 블록'으로 설정 될 때까지 적용 할 수 없습니다. –

+0

@Lyu 설명에 기반한 것은 사실이지만, ''태그로 제한해서는 안되며 쉽게 해결할 수 있습니다. – TheQ

4

이 또 다른 하나 개의 솔루션이 disply: flex;flex-grow를 사용하여 2014 년

Amount Paid: $ <span style="text-decoration: underline; white-space: pre;">     </span> 
+0

이점, 일반적인 밑줄처럼 보입니다 (인쇄 할 때 또는 PDF를 생성 할 때). Chrome의 1 픽셀 경계보다 다소 얇습니다. –

0

년에 작동합니다

.container { 
 
    width: 200px; 
 
} 
 

 
.row { 
 
    display: flex; 
 
} 
 

 
.underline { 
 
    flex-grow: 1; 
 
    border-bottom: 1px solid black; 
 
    margin-left: 5px; 
 
}
<div class='container'> 
 
    <div class='row'> 
 
     <div class='label'>Count:</div> 
 
     <div class='underline'></div> 
 
    </div> 
 
    <div class='row'> 
 
     <div class='label'>Amount Paid:</div> 
 
     <div class='underline'></div> 
 
    </div> 
 
</div>

는 의미 어디 당신은 상황 중 하나가 우연히 수도
관련 문제