зеркало из https://github.com/mozilla/pjs.git
Bug 248239 - Change standards mode height calculations for table cells to use content-box sizing rather than border-box sizing by default (and to honor -moz-box-sizing, which we do not do in quirks mode). Also remove -moz-box-sizing: border-box from default style for caption element (all modes). r=dbaron
This commit is contained in:
Родитель
880883830e
Коммит
6d60643aca
|
@ -10,6 +10,7 @@ td, th {
|
|||
background-color: lime;
|
||||
width:100px;
|
||||
height:100px;
|
||||
-moz-box-sizing:border-box;
|
||||
}
|
||||
td {
|
||||
border-top: 4px solid lime;
|
||||
|
|
|
@ -11,6 +11,7 @@ td, th {
|
|||
width:100px;
|
||||
height:100px;
|
||||
border:4px solid lime;
|
||||
-moz-box-sizing:border-box;
|
||||
}
|
||||
td {
|
||||
border-top:hidden;
|
||||
|
|
|
@ -9,10 +9,10 @@ div {position:absolute; border:green 4px solid}
|
|||
</head>
|
||||
|
||||
<body>
|
||||
<!-- the height for table cells includes the border -->
|
||||
<!-- in standards mode, the height for table cells does not includes the border -->
|
||||
<div>
|
||||
<table cellspacing="0">
|
||||
<tr><td style="border:solid 4px orange; height:34px">cell 1</td></tr>
|
||||
<tr><td style="border:solid 4px orange; height:30px">cell 1</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -13,7 +13,7 @@ caption {border:solid 4px green}
|
|||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- by default, td has padding of 1px -->
|
||||
<table style="border-collapse:collapse;"><caption>caption</caption>
|
||||
<tr><td style="border:solid 4px orange; height:30px">cell 1</td></tr>
|
||||
</table>
|
||||
|
|
|
@ -13,7 +13,7 @@ caption {border:solid 4px green}
|
|||
|
||||
<table cellspacing="0" cellpadding="0"><caption>caption</caption>
|
||||
<tr>
|
||||
<td style="border:solid 4px orange; width:102px; height:34px">cell 1</td>
|
||||
<td style="border:solid 4px orange; width:102px; height:32px">cell 1</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
|
|
@ -393,7 +393,6 @@ table[rules][rules="groups"] > tbody {
|
|||
caption {
|
||||
display: table-caption;
|
||||
text-align: center;
|
||||
-moz-box-sizing: border-box;
|
||||
}
|
||||
|
||||
table[align="center"] > caption {
|
||||
|
|
|
@ -603,11 +603,33 @@ nsTableRowFrame::CalculateCellActualHeight(nsTableCellFrame* aCellFrame,
|
|||
PRInt32 rowSpan = tableFrame->GetEffectiveRowSpan(*aCellFrame);
|
||||
|
||||
switch (position->mHeight.GetUnit()) {
|
||||
case eStyleUnit_Coord:
|
||||
specifiedHeight = position->mHeight.GetCoordValue();
|
||||
case eStyleUnit_Coord: {
|
||||
nscoord outsideBoxSizing = 0;
|
||||
// In quirks mode, table cell width should be content-box, but height
|
||||
// should be border-box.
|
||||
// Because of this historic anomaly, we do not use quirk.css
|
||||
// (since we can't specify one value of box-sizing for width and another
|
||||
// for height)
|
||||
if (PresContext()->CompatibilityMode() != eCompatibility_NavQuirks) {
|
||||
switch (position->mBoxSizing) {
|
||||
case NS_STYLE_BOX_SIZING_CONTENT:
|
||||
outsideBoxSizing = aCellFrame->GetUsedBorderAndPadding().TopBottom();
|
||||
break;
|
||||
case NS_STYLE_BOX_SIZING_PADDING:
|
||||
outsideBoxSizing = aCellFrame->GetUsedBorder().TopBottom();
|
||||
break;
|
||||
default:
|
||||
// NS_STYLE_BOX_SIZING_BORDER
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
specifiedHeight = position->mHeight.GetCoordValue() + outsideBoxSizing;
|
||||
|
||||
if (1 == rowSpan)
|
||||
SetFixedHeight(specifiedHeight);
|
||||
break;
|
||||
}
|
||||
case eStyleUnit_Percent: {
|
||||
if (1 == rowSpan)
|
||||
SetPctHeight(position->mHeight.GetPercentValue());
|
||||
|
|
|
@ -445,7 +445,7 @@ MochiKit.Base.update(MochiKit.Style, {
|
|||
(parseFloat(self.getStyle(elem, 'borderRightWidth')) || 0)
|
||||
);
|
||||
if (tableCell) {
|
||||
if (/Gecko|Opera/.test(navigator.userAgent)
|
||||
if (/Opera/.test(navigator.userAgent)
|
||||
&& !/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent)) {
|
||||
var borderHeightQuota = 0;
|
||||
} else if (/MSIE/.test(navigator.userAgent)) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче