2009-12-22 7 views
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title>Untitled Page</title> 
    <style type="text/css">  
     #textarea1 { 
      width: 100%; 
      overflow:hidden; 
     } 
     #table1 { 
    background-color:#0000ff; 
    width: 100px; 
     } 
    </style> 
</head> 
<body> 
    <form id="form1"> 
    <table id="table1" > 
     <tr><td><textarea cols="0" rows="2" id="textarea1"></textarea></td></tr> 
    </table> 
    </form> 
</body> 
</html> 

텍스트 영역이 표의 ie8에 의해 올바르게 렌더링되지 않습니다 (셀보다 넓음). doctype 태그를 제거하면 올바르게 렌더링됩니다. 내가 바보 같은 짓을하고 있니?HTML 텍스트 영역의 크기가 ie8의 표에 올바르지 않습니다. Doctype 문제?

답변

0

IE 즉, 요소의 내용 영역의 폭을 의미한다 # table1 width 속성에서 상속 된 표 셀의 너비를 100 픽셀 (채우기/2)로 해석합니다. 여기가 실제로 엉망입니다. 테이블의 기본 셀 간격은 3 픽셀이므로 기술적으로 셀의 너비는 94px 여야하고 그 너비의 100 %는 ... 94px 여야합니다. 대신 100px를 적용합니다.

명시 적으로 테이블 셀의 폭 속성을 설정하면, 그것은 당신이 cellspacingcellpadding0, 그리고 0에 텍스트 영역의 border-width을 설정 한 후에 만이를 정정 할 수 있지만. 당신이 당신의 텍스트 영역 주위의 정상 테두리를 원하는 경우

예컨대 :

#textarea1 { 
width: 100%; 
overflow:hidden; 
margin:0; 
padding:0; 
border:0; 
} 
#table1 { 
background-color:#0000ff; 
width: 100px; 
padding:0; 
margin:0; 
border-spacing:0; 
border-collapse:collapse; 
} 
#table1 td { 
width:100px; 
padding:0; 
margin:0; 
} 

대안은,의 td100px - border-wdith*2 등의 width을 정의하는 것입니다. 난 당신이 < ASP를 사용하는 경우 사실을 발견 차

+0

언급하는 것을 잊었을 때 : 재설정 스타일 시트를 사용하십시오. 적용된 마진 및 패딩으로 여기에서 경험하는 것과 같은 많은 문제를 해결합니다. – ndorfin

+0

감사합니다. 전적으로 내 잘못이 아니라고 생각했습니다. 브라우저가 잘못되기위한 기본적인 문제가 아닌가? – haymansfield

+0

물론입니다. Box Model에 대한 Internet Explorer의 해석은 매우 좋지 않지만 새로 출시 될 때마다 점점 좋아지고있는 것처럼 보입니다. – ndorfin

0

cols="0" 조금 어설프군. CSS가없는 사용자에게는이 값을 적절한 값으로 설정하십시오.

당신은 textarea에서 테두리와 패딩을 제거하려고 할 수 있습니다 :

#textarea1 { 
    width: 100%; 
    overflow:hidden; 
    margin: 0; 
    border-style: none; 
    padding: 0; 
} 

width

는 여백, 테두리 내부 영역과 패딩

0

하는 데 도움이

희망 : 텍스트 상자 > 컨트롤, 속성 = "서버"와 텍스트 모드 = "여러 줄"RUNAT와 함께, 그것은 잘 작동합니다. 그리고 당신이 소스를 보았다면 - 이상하게도 - 당신이 얻은 것은 html 텍스트 영역뿐입니다. (테이블 내에서 텍스트 렌더링의 asp 렌더링과 텍스트 정의 간의 차이점을 찾을 수 없었습니다) .

어쨌든 asp.net을 사용하면 쉽게 사용할 수 있습니다. 멋지게 렌더링됩니다. ID 앞에 "ctl00_MainContent_"라는 접두어를 붙이는 것만으로도 인터넷에있는 "보기 소스"를 통해 또는 개발자 툴바를 통해 한 번 올려다 보면 주변에 따라 ASP.NET이 렌더링됩니다. jQuery를에 따라서

하는

$ ('# ctl00_MainContent_myTextbox'). 발()

<asp:TextBox ID="myTextbox" runat="server" TextMode="MultiLine" style="height:50px; width:90%"></asp:TextBox> 

코드에 정의되어있는 경우

이 값을 검색 할 . 당신이 그것을 기대하는대로 : 당신의 편의를 위해 변수에

var aspPrefix='#ctl00_MainContent_'; // global variable 
var textValue = $(aspPrefix+'myTextbox').val(); // example to get value 

모든 다른 작품을 예컨대을 접두사 '# ctl00_MainContent_'를 넣을 수 있습니다.

관련 문제