Bug 577838. The first line baseline of a fieldset should be the first line baseline of its legend (if it has one), or of its content if it does not. r=dbaron

This commit is contained in:
Boris Zbarsky 2010-08-04 22:40:19 -04:00
Родитель 7f4f3b1566
Коммит 062993e0ce
6 изменённых файлов: 112 добавлений и 0 удалений

Просмотреть файл

@ -2580,6 +2580,17 @@ nsLayoutUtils::GetFirstLinePosition(const nsIFrame* aFrame,
return PR_FALSE; return PR_FALSE;
} }
if (fType == nsGkAtoms::fieldSetFrame) {
LinePosition kidPosition;
nsIFrame* kid = aFrame->GetFirstChild(nsnull);
// kid might be a legend frame here, but that's ok.
if (GetFirstLinePosition(kid, &kidPosition)) {
*aResult = kidPosition + kid->GetPosition().y;
return PR_TRUE;
}
return PR_FALSE;
}
// No baseline. // No baseline.
return PR_FALSE; return PR_FALSE;
} }

Просмотреть файл

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<style>
td { vertical-align: baseline; }
</style>
</head>
<body>
<table>
<tr>
<td>text</td>
<td>
<div>
<div>
fieldset<br>
fieldset
</div>
after
</div>
</td>
</tr>
</table>
</body>
</html>

Просмотреть файл

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<style>
td { vertical-align: baseline; }
fieldset { border: none; padding: 0; margin: 0; }
</style>
</head>
<body>
<table>
<tr>
<td>text</td>
<td>
<div>
<fieldset>
fieldset<br>
fieldset
</fieldset>
after
</div>
</td>
</tr>
</table>
</body>
</html>

Просмотреть файл

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<style>
td { vertical-align: baseline; }
td > div > div { padding-top: 50px; }
</style>
</head>
<body>
<table>
<tr>
<td>text</td>
<td>
<div>
<div>
fieldset<br>
fieldset
</div>
after
</div>
</td>
</tr>
</table>
</body>
</html>

Просмотреть файл

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<style>
td { vertical-align: baseline; }
fieldset { border: none; padding: 50px 0 0 0; margin: 0; }
</style>
</head>
<body>
<table>
<tr>
<td>text</td>
<td>
<div>
<fieldset>
fieldset<br>
fieldset
</fieldset>
after
</div>
</td>
</tr>
</table>
</body>
</html>

Просмотреть файл

@ -1459,6 +1459,8 @@ random-if(!haveTestPlugin) == 546071-1.html 546071-1-ref.html
== 571347-3.html 571347-3-ref.html == 571347-3.html 571347-3-ref.html
== 572598-1.html 572598-ref.html == 572598-1.html 572598-ref.html
== 574898-1.html 574898-ref.html == 574898-1.html 574898-ref.html
== 577838-1.html 577838-1-ref.html
== 577838-2.html 577838-2-ref.html
== 581579-1.html 581579-1-ref.html == 581579-1.html 581579-1-ref.html
== 584400-dash-length.svg 584400-dash-length-ref.svg == 584400-dash-length.svg 584400-dash-length-ref.svg
== 580160-1.html 580160-1-ref.html == 580160-1.html 580160-1-ref.html