mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
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). (Bug 248239) r=dbaron
This commit is contained in:
parent
ce957c9c8b
commit
bded505e94
@ -10,6 +10,7 @@ td, th {
|
|||||||
background-color: lime;
|
background-color: lime;
|
||||||
width:100px;
|
width:100px;
|
||||||
height:100px;
|
height:100px;
|
||||||
|
-moz-box-sizing:border-box;
|
||||||
}
|
}
|
||||||
td {
|
td {
|
||||||
border-top: 4px solid lime;
|
border-top: 4px solid lime;
|
||||||
|
@ -11,6 +11,7 @@ td, th {
|
|||||||
width:100px;
|
width:100px;
|
||||||
height:100px;
|
height:100px;
|
||||||
border:4px solid lime;
|
border:4px solid lime;
|
||||||
|
-moz-box-sizing:border-box;
|
||||||
}
|
}
|
||||||
td {
|
td {
|
||||||
border-top:hidden;
|
border-top:hidden;
|
||||||
|
@ -9,10 +9,10 @@ div {position:absolute; border:green 4px solid}
|
|||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<!-- the height for table cells includes the border -->
|
<!-- in standards mode, the height for table cells does not includes the border -->
|
||||||
<div>
|
<div>
|
||||||
<table cellspacing="0">
|
<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>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
@ -13,7 +13,7 @@ caption {border:solid 4px green}
|
|||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
<!-- by default, td has padding of 1px -->
|
||||||
<table style="border-collapse:collapse;"><caption>caption</caption>
|
<table style="border-collapse:collapse;"><caption>caption</caption>
|
||||||
<tr><td style="border:solid 4px orange; height:30px">cell 1</td></tr>
|
<tr><td style="border:solid 4px orange; height:30px">cell 1</td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -13,7 +13,7 @@ caption {border:solid 4px green}
|
|||||||
|
|
||||||
<table cellspacing="0" cellpadding="0"><caption>caption</caption>
|
<table cellspacing="0" cellpadding="0"><caption>caption</caption>
|
||||||
<tr>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</body>
|
</body>
|
||||||
|
@ -393,7 +393,6 @@ table[rules][rules="groups"] > tbody {
|
|||||||
caption {
|
caption {
|
||||||
display: table-caption;
|
display: table-caption;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
table[align="center"] > caption {
|
table[align="center"] > caption {
|
||||||
|
@ -607,11 +607,33 @@ nsTableRowFrame::CalculateCellActualHeight(nsTableCellFrame* aCellFrame,
|
|||||||
PRInt32 rowSpan = tableFrame->GetEffectiveRowSpan(*aCellFrame);
|
PRInt32 rowSpan = tableFrame->GetEffectiveRowSpan(*aCellFrame);
|
||||||
|
|
||||||
switch (position->mHeight.GetUnit()) {
|
switch (position->mHeight.GetUnit()) {
|
||||||
case eStyleUnit_Coord:
|
case eStyleUnit_Coord: {
|
||||||
specifiedHeight = position->mHeight.GetCoordValue();
|
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)
|
if (1 == rowSpan)
|
||||||
SetFixedHeight(specifiedHeight);
|
SetFixedHeight(specifiedHeight);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case eStyleUnit_Percent: {
|
case eStyleUnit_Percent: {
|
||||||
if (1 == rowSpan)
|
if (1 == rowSpan)
|
||||||
SetPctHeight(position->mHeight.GetPercentValue());
|
SetPctHeight(position->mHeight.GetPercentValue());
|
||||||
|
Loading…
Reference in New Issue
Block a user