зеркало из https://github.com/mozilla/gecko-dev.git
Made table frame construction flexible enough to allow arbitrary content to be mapped
to arbitrary table related display types.
This commit is contained in:
Родитель
87e2ee2cc6
Коммит
6256ccca5b
|
@ -227,8 +227,10 @@ nsIAtom* nsHTMLAtoms::suppress;
|
|||
nsIAtom* nsHTMLAtoms::tabindex;
|
||||
nsIAtom* nsHTMLAtoms::table;
|
||||
nsIAtom* nsHTMLAtoms::tablePseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableCellPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableColGroupPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableColPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableOuterPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableRowGroupPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableRowPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tabstop;
|
||||
|
@ -477,8 +479,10 @@ void nsHTMLAtoms::AddrefAtoms()
|
|||
tabindex = NS_NewAtom("TABINDEX");
|
||||
table = NS_NewAtom("TABLE");
|
||||
tablePseudo = NS_NewAtom(":TABLE");
|
||||
tableCellPseudo = NS_NewAtom(":TABLE-CELL");
|
||||
tableColGroupPseudo = NS_NewAtom(":TABLE-COLUMN-GROUP");
|
||||
tableColPseudo = NS_NewAtom(":TABLE-COLUMN");
|
||||
tableOuterPseudo = NS_NewAtom(":TABLE-OUTER");
|
||||
tableRowGroupPseudo = NS_NewAtom(":TABLE-ROW-GROUP");
|
||||
tableRowPseudo = NS_NewAtom(":TABLE-ROW");
|
||||
tabstop = NS_NewAtom("TABSTOP");
|
||||
|
@ -718,8 +722,10 @@ void nsHTMLAtoms::ReleaseAtoms()
|
|||
NS_RELEASE(suppress);
|
||||
NS_RELEASE(table);
|
||||
NS_RELEASE(tablePseudo);
|
||||
NS_RELEASE(tableCellPseudo);
|
||||
NS_RELEASE(tableColGroupPseudo);
|
||||
NS_RELEASE(tableColPseudo);
|
||||
NS_RELEASE(tableOuterPseudo);
|
||||
NS_RELEASE(tableRowGroupPseudo);
|
||||
NS_RELEASE(tableRowPseudo);
|
||||
NS_RELEASE(tabstop);
|
||||
|
|
|
@ -263,8 +263,10 @@ public:
|
|||
static nsIAtom* tabindex;
|
||||
static nsIAtom* table;
|
||||
static nsIAtom* tablePseudo;
|
||||
static nsIAtom* tableCellPseudo;
|
||||
static nsIAtom* tableColGroupPseudo;
|
||||
static nsIAtom* tableColPseudo;
|
||||
static nsIAtom* tableOuterPseudo;
|
||||
static nsIAtom* tableRowGroupPseudo;
|
||||
static nsIAtom* tableRowPseudo;
|
||||
static nsIAtom* tabstop;
|
||||
|
|
|
@ -104,8 +104,9 @@ protected:
|
|||
GenericElementCollection* mCells;
|
||||
};
|
||||
|
||||
#ifdef XXX_debugging
|
||||
static
|
||||
void TempList(nsIDOMHTMLTableElement* aTable) {
|
||||
void DebugList(nsIDOMHTMLTableElement* aTable) {
|
||||
nsIHTMLContent* content = nsnull;
|
||||
nsresult result = aTable->QueryInterface(kIHTMLContentIID, (void**)&content);
|
||||
if (NS_SUCCEEDED(result) && (nsnull != content)) {
|
||||
|
@ -130,6 +131,7 @@ void TempList(nsIDOMHTMLTableElement* aTable) {
|
|||
NS_RELEASE(content);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
nsresult
|
||||
NS_NewHTMLTableRowElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag)
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -263,8 +263,10 @@ public:
|
|||
static nsIAtom* tabindex;
|
||||
static nsIAtom* table;
|
||||
static nsIAtom* tablePseudo;
|
||||
static nsIAtom* tableCellPseudo;
|
||||
static nsIAtom* tableColGroupPseudo;
|
||||
static nsIAtom* tableColPseudo;
|
||||
static nsIAtom* tableOuterPseudo;
|
||||
static nsIAtom* tableRowGroupPseudo;
|
||||
static nsIAtom* tableRowPseudo;
|
||||
static nsIAtom* tabstop;
|
||||
|
|
|
@ -227,8 +227,10 @@ nsIAtom* nsHTMLAtoms::suppress;
|
|||
nsIAtom* nsHTMLAtoms::tabindex;
|
||||
nsIAtom* nsHTMLAtoms::table;
|
||||
nsIAtom* nsHTMLAtoms::tablePseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableCellPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableColGroupPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableColPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableOuterPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableRowGroupPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableRowPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tabstop;
|
||||
|
@ -477,8 +479,10 @@ void nsHTMLAtoms::AddrefAtoms()
|
|||
tabindex = NS_NewAtom("TABINDEX");
|
||||
table = NS_NewAtom("TABLE");
|
||||
tablePseudo = NS_NewAtom(":TABLE");
|
||||
tableCellPseudo = NS_NewAtom(":TABLE-CELL");
|
||||
tableColGroupPseudo = NS_NewAtom(":TABLE-COLUMN-GROUP");
|
||||
tableColPseudo = NS_NewAtom(":TABLE-COLUMN");
|
||||
tableOuterPseudo = NS_NewAtom(":TABLE-OUTER");
|
||||
tableRowGroupPseudo = NS_NewAtom(":TABLE-ROW-GROUP");
|
||||
tableRowPseudo = NS_NewAtom(":TABLE-ROW");
|
||||
tabstop = NS_NewAtom("TABSTOP");
|
||||
|
@ -718,8 +722,10 @@ void nsHTMLAtoms::ReleaseAtoms()
|
|||
NS_RELEASE(suppress);
|
||||
NS_RELEASE(table);
|
||||
NS_RELEASE(tablePseudo);
|
||||
NS_RELEASE(tableCellPseudo);
|
||||
NS_RELEASE(tableColGroupPseudo);
|
||||
NS_RELEASE(tableColPseudo);
|
||||
NS_RELEASE(tableOuterPseudo);
|
||||
NS_RELEASE(tableRowGroupPseudo);
|
||||
NS_RELEASE(tableRowPseudo);
|
||||
NS_RELEASE(tabstop);
|
||||
|
|
|
@ -227,8 +227,10 @@ nsIAtom* nsHTMLAtoms::suppress;
|
|||
nsIAtom* nsHTMLAtoms::tabindex;
|
||||
nsIAtom* nsHTMLAtoms::table;
|
||||
nsIAtom* nsHTMLAtoms::tablePseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableCellPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableColGroupPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableColPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableOuterPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableRowGroupPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tableRowPseudo;
|
||||
nsIAtom* nsHTMLAtoms::tabstop;
|
||||
|
@ -477,8 +479,10 @@ void nsHTMLAtoms::AddrefAtoms()
|
|||
tabindex = NS_NewAtom("TABINDEX");
|
||||
table = NS_NewAtom("TABLE");
|
||||
tablePseudo = NS_NewAtom(":TABLE");
|
||||
tableCellPseudo = NS_NewAtom(":TABLE-CELL");
|
||||
tableColGroupPseudo = NS_NewAtom(":TABLE-COLUMN-GROUP");
|
||||
tableColPseudo = NS_NewAtom(":TABLE-COLUMN");
|
||||
tableOuterPseudo = NS_NewAtom(":TABLE-OUTER");
|
||||
tableRowGroupPseudo = NS_NewAtom(":TABLE-ROW-GROUP");
|
||||
tableRowPseudo = NS_NewAtom(":TABLE-ROW");
|
||||
tabstop = NS_NewAtom("TABSTOP");
|
||||
|
@ -718,8 +722,10 @@ void nsHTMLAtoms::ReleaseAtoms()
|
|||
NS_RELEASE(suppress);
|
||||
NS_RELEASE(table);
|
||||
NS_RELEASE(tablePseudo);
|
||||
NS_RELEASE(tableCellPseudo);
|
||||
NS_RELEASE(tableColGroupPseudo);
|
||||
NS_RELEASE(tableColPseudo);
|
||||
NS_RELEASE(tableOuterPseudo);
|
||||
NS_RELEASE(tableRowGroupPseudo);
|
||||
NS_RELEASE(tableRowPseudo);
|
||||
NS_RELEASE(tabstop);
|
||||
|
|
|
@ -263,8 +263,10 @@ public:
|
|||
static nsIAtom* tabindex;
|
||||
static nsIAtom* table;
|
||||
static nsIAtom* tablePseudo;
|
||||
static nsIAtom* tableCellPseudo;
|
||||
static nsIAtom* tableColGroupPseudo;
|
||||
static nsIAtom* tableColPseudo;
|
||||
static nsIAtom* tableOuterPseudo;
|
||||
static nsIAtom* tableRowGroupPseudo;
|
||||
static nsIAtom* tableRowPseudo;
|
||||
static nsIAtom* tabstop;
|
||||
|
|
|
@ -104,8 +104,9 @@ protected:
|
|||
GenericElementCollection* mCells;
|
||||
};
|
||||
|
||||
#ifdef XXX_debugging
|
||||
static
|
||||
void TempList(nsIDOMHTMLTableElement* aTable) {
|
||||
void DebugList(nsIDOMHTMLTableElement* aTable) {
|
||||
nsIHTMLContent* content = nsnull;
|
||||
nsresult result = aTable->QueryInterface(kIHTMLContentIID, (void**)&content);
|
||||
if (NS_SUCCEEDED(result) && (nsnull != content)) {
|
||||
|
@ -130,6 +131,7 @@ void TempList(nsIDOMHTMLTableElement* aTable) {
|
|||
NS_RELEASE(content);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
nsresult
|
||||
NS_NewHTMLTableRowElement(nsIHTMLContent** aInstancePtrResult, nsIAtom* aTag)
|
||||
|
|
|
@ -574,6 +574,10 @@ NOFRAMES {
|
|||
background: inherit;
|
||||
}
|
||||
|
||||
:TABLE-CELL {
|
||||
display: table-cell;
|
||||
}
|
||||
|
||||
:TABLE-COLUMN {
|
||||
display: table-column;
|
||||
}
|
||||
|
@ -582,6 +586,10 @@ NOFRAMES {
|
|||
display: table-column-group;
|
||||
}
|
||||
|
||||
:TABLE-OUTER {
|
||||
display: table;
|
||||
}
|
||||
|
||||
:TABLE-ROW {
|
||||
display: table-row;
|
||||
}
|
||||
|
@ -606,8 +614,14 @@ NOFRAMES {
|
|||
display: block;
|
||||
}
|
||||
|
||||
|
||||
<<<<<<< ua.css
|
||||
=======
|
||||
:MOZ-COMMENT {
|
||||
display: none;
|
||||
<<<<<<< ua.css
|
||||
}>>>>>>> 3.86
|
||||
=======
|
||||
}
|
||||
|
||||
:DROPDOWN-VISIBLE {
|
||||
|
@ -634,3 +648,4 @@ NOFRAMES {
|
|||
color: white;
|
||||
border: 1px dotted white;
|
||||
}
|
||||
>>>>>>> 3.87
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -63,6 +63,8 @@ static const PRBool gsDebugIR = PR_FALSE;
|
|||
NS_DEF_PTR(nsIStyleContext);
|
||||
NS_DEF_PTR(nsIContent);
|
||||
|
||||
static NS_DEFINE_IID(kITableRowGroupFrameIID, NS_ITABLEROWGROUPFRAME_IID);
|
||||
|
||||
static const PRInt32 kColumnWidthIncrement=100;
|
||||
|
||||
/* ----------- CellData ---------- */
|
||||
|
@ -3248,6 +3250,7 @@ NS_METHOD nsTableFrame::ReflowMappedChildren(nsIPresContext& aPresContext,
|
|||
{
|
||||
// Keep track of the first row group frame: we need this to correctly clear
|
||||
// the isTopOfPage flag and when pushing frames
|
||||
// XXX what about header and footer groups?
|
||||
if (nsnull == firstRowGroupFrame) {
|
||||
if (NS_STYLE_DISPLAY_TABLE_ROW_GROUP == childDisplay->mDisplay) {
|
||||
firstRowGroupFrame = kidFrame;
|
||||
|
@ -3255,7 +3258,7 @@ NS_METHOD nsTableFrame::ReflowMappedChildren(nsIPresContext& aPresContext,
|
|||
}
|
||||
|
||||
nsMargin borderPadding;
|
||||
GetTableBorderForRowGroup((nsTableRowGroupFrame *)kidFrame, borderPadding);
|
||||
GetTableBorderForRowGroup(GetRowGroupFrameFor(kidFrame, childDisplay), borderPadding);
|
||||
const nsStyleSpacing* tableSpacing;
|
||||
GetStyleData(eStyleStruct_Spacing, ((const nsStyleStruct *&)tableSpacing));
|
||||
nsMargin padding;
|
||||
|
@ -4926,18 +4929,23 @@ nsTableFrame::GetFrameName(nsString& aResult) const
|
|||
return MakeFrameName("Table", aResult);
|
||||
}
|
||||
|
||||
// This assumes that aFrame is a scroll frame if
|
||||
// XXX make this a macro if it becomes an issue
|
||||
// XXX it has the side effect of setting mHasScrollableRowGroup
|
||||
nsTableRowGroupFrame*
|
||||
nsTableFrame::GetRowGroupFrameFor(nsIFrame* aFrame, const nsStyleDisplay* aDisplay)
|
||||
{
|
||||
if ((NS_STYLE_OVERFLOW_SCROLL == aDisplay->mOverflow) ||
|
||||
(NS_STYLE_OVERFLOW_AUTO == aDisplay->mOverflow)) {
|
||||
nsIFrame* result = nsnull;
|
||||
if (IsRowGroup(aDisplay->mDisplay)) {
|
||||
nsresult rv = aFrame->QueryInterface(kITableRowGroupFrameIID, (void **)&result);
|
||||
if (NS_SUCCEEDED(rv) && (nsnull != result)) {
|
||||
;
|
||||
} else { // it is a scroll frame that contains the row group frame
|
||||
aFrame->FirstChild(nsnull, result);
|
||||
mHasScrollableRowGroup = PR_TRUE;
|
||||
nsIFrame* child = nsnull;
|
||||
aFrame->FirstChild(nsnull, child);
|
||||
return (nsTableRowGroupFrame*)child;
|
||||
} else {
|
||||
return (nsTableRowGroupFrame*)aFrame;
|
||||
}
|
||||
}
|
||||
|
||||
return (nsTableRowGroupFrame*)result;
|
||||
}
|
||||
|
||||
|
|
|
@ -90,6 +90,21 @@ struct RowGroupReflowState {
|
|||
|
||||
/* ----------- nsTableRowGroupFrame ---------- */
|
||||
|
||||
nsresult
|
||||
nsTableRowGroupFrame::QueryInterface(const nsIID& aIID, void** aInstancePtr)
|
||||
{
|
||||
if (NULL == aInstancePtr) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
static NS_DEFINE_IID(kITableRowGroupIID, NS_ITABLEROWGROUPFRAME_IID);
|
||||
if (aIID.Equals(kITableRowGroupIID)) {
|
||||
*aInstancePtr = (void*)this;
|
||||
return NS_OK;
|
||||
} else {
|
||||
return nsHTMLContainerFrame::QueryInterface(aIID, aInstancePtr);
|
||||
}
|
||||
}
|
||||
|
||||
NS_METHOD nsTableRowGroupFrame::GetRowCount(PRInt32 &aCount)
|
||||
{
|
||||
// init out-param
|
||||
|
|
|
@ -25,6 +25,10 @@
|
|||
class nsTableRowFrame;
|
||||
struct RowGroupReflowState;
|
||||
|
||||
#define NS_ITABLEROWGROUPFRAME_IID \
|
||||
{ 0xe940e7bc, 0xb534, 0x11d2, \
|
||||
{ 0x95, 0xa2, 0x0, 0x60, 0xb0, 0xc3, 0x44, 0x14 } }
|
||||
|
||||
/**
|
||||
* nsTableRowGroupFrame is the frame that maps row groups
|
||||
* (HTML tags THEAD, TFOOT, and TBODY). This class cannot be reused
|
||||
|
@ -50,6 +54,8 @@ public:
|
|||
friend nsresult
|
||||
NS_NewTableRowGroupFrame(nsIFrame*& aResult);
|
||||
|
||||
NS_METHOD QueryInterface(const nsIID& aIID, void** aInstancePtr);
|
||||
|
||||
NS_IMETHOD SetInitialChildList(nsIPresContext& aPresContext,
|
||||
nsIAtom* aListName,
|
||||
nsIFrame* aChildList);
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -574,6 +574,10 @@ NOFRAMES {
|
|||
background: inherit;
|
||||
}
|
||||
|
||||
:TABLE-CELL {
|
||||
display: table-cell;
|
||||
}
|
||||
|
||||
:TABLE-COLUMN {
|
||||
display: table-column;
|
||||
}
|
||||
|
@ -582,6 +586,10 @@ NOFRAMES {
|
|||
display: table-column-group;
|
||||
}
|
||||
|
||||
:TABLE-OUTER {
|
||||
display: table;
|
||||
}
|
||||
|
||||
:TABLE-ROW {
|
||||
display: table-row;
|
||||
}
|
||||
|
@ -606,8 +614,14 @@ NOFRAMES {
|
|||
display: block;
|
||||
}
|
||||
|
||||
|
||||
<<<<<<< ua.css
|
||||
=======
|
||||
:MOZ-COMMENT {
|
||||
display: none;
|
||||
<<<<<<< ua.css
|
||||
}>>>>>>> 3.86
|
||||
=======
|
||||
}
|
||||
|
||||
:DROPDOWN-VISIBLE {
|
||||
|
@ -634,3 +648,4 @@ NOFRAMES {
|
|||
color: white;
|
||||
border: 1px dotted white;
|
||||
}
|
||||
>>>>>>> 3.87
|
||||
|
|
|
@ -63,6 +63,8 @@ static const PRBool gsDebugIR = PR_FALSE;
|
|||
NS_DEF_PTR(nsIStyleContext);
|
||||
NS_DEF_PTR(nsIContent);
|
||||
|
||||
static NS_DEFINE_IID(kITableRowGroupFrameIID, NS_ITABLEROWGROUPFRAME_IID);
|
||||
|
||||
static const PRInt32 kColumnWidthIncrement=100;
|
||||
|
||||
/* ----------- CellData ---------- */
|
||||
|
@ -3248,6 +3250,7 @@ NS_METHOD nsTableFrame::ReflowMappedChildren(nsIPresContext& aPresContext,
|
|||
{
|
||||
// Keep track of the first row group frame: we need this to correctly clear
|
||||
// the isTopOfPage flag and when pushing frames
|
||||
// XXX what about header and footer groups?
|
||||
if (nsnull == firstRowGroupFrame) {
|
||||
if (NS_STYLE_DISPLAY_TABLE_ROW_GROUP == childDisplay->mDisplay) {
|
||||
firstRowGroupFrame = kidFrame;
|
||||
|
@ -3255,7 +3258,7 @@ NS_METHOD nsTableFrame::ReflowMappedChildren(nsIPresContext& aPresContext,
|
|||
}
|
||||
|
||||
nsMargin borderPadding;
|
||||
GetTableBorderForRowGroup((nsTableRowGroupFrame *)kidFrame, borderPadding);
|
||||
GetTableBorderForRowGroup(GetRowGroupFrameFor(kidFrame, childDisplay), borderPadding);
|
||||
const nsStyleSpacing* tableSpacing;
|
||||
GetStyleData(eStyleStruct_Spacing, ((const nsStyleStruct *&)tableSpacing));
|
||||
nsMargin padding;
|
||||
|
@ -4926,18 +4929,23 @@ nsTableFrame::GetFrameName(nsString& aResult) const
|
|||
return MakeFrameName("Table", aResult);
|
||||
}
|
||||
|
||||
// This assumes that aFrame is a scroll frame if
|
||||
// XXX make this a macro if it becomes an issue
|
||||
// XXX it has the side effect of setting mHasScrollableRowGroup
|
||||
nsTableRowGroupFrame*
|
||||
nsTableFrame::GetRowGroupFrameFor(nsIFrame* aFrame, const nsStyleDisplay* aDisplay)
|
||||
{
|
||||
if ((NS_STYLE_OVERFLOW_SCROLL == aDisplay->mOverflow) ||
|
||||
(NS_STYLE_OVERFLOW_AUTO == aDisplay->mOverflow)) {
|
||||
nsIFrame* result = nsnull;
|
||||
if (IsRowGroup(aDisplay->mDisplay)) {
|
||||
nsresult rv = aFrame->QueryInterface(kITableRowGroupFrameIID, (void **)&result);
|
||||
if (NS_SUCCEEDED(rv) && (nsnull != result)) {
|
||||
;
|
||||
} else { // it is a scroll frame that contains the row group frame
|
||||
aFrame->FirstChild(nsnull, result);
|
||||
mHasScrollableRowGroup = PR_TRUE;
|
||||
nsIFrame* child = nsnull;
|
||||
aFrame->FirstChild(nsnull, child);
|
||||
return (nsTableRowGroupFrame*)child;
|
||||
} else {
|
||||
return (nsTableRowGroupFrame*)aFrame;
|
||||
}
|
||||
}
|
||||
|
||||
return (nsTableRowGroupFrame*)result;
|
||||
}
|
||||
|
||||
|
|
|
@ -90,6 +90,21 @@ struct RowGroupReflowState {
|
|||
|
||||
/* ----------- nsTableRowGroupFrame ---------- */
|
||||
|
||||
nsresult
|
||||
nsTableRowGroupFrame::QueryInterface(const nsIID& aIID, void** aInstancePtr)
|
||||
{
|
||||
if (NULL == aInstancePtr) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
static NS_DEFINE_IID(kITableRowGroupIID, NS_ITABLEROWGROUPFRAME_IID);
|
||||
if (aIID.Equals(kITableRowGroupIID)) {
|
||||
*aInstancePtr = (void*)this;
|
||||
return NS_OK;
|
||||
} else {
|
||||
return nsHTMLContainerFrame::QueryInterface(aIID, aInstancePtr);
|
||||
}
|
||||
}
|
||||
|
||||
NS_METHOD nsTableRowGroupFrame::GetRowCount(PRInt32 &aCount)
|
||||
{
|
||||
// init out-param
|
||||
|
|
|
@ -25,6 +25,10 @@
|
|||
class nsTableRowFrame;
|
||||
struct RowGroupReflowState;
|
||||
|
||||
#define NS_ITABLEROWGROUPFRAME_IID \
|
||||
{ 0xe940e7bc, 0xb534, 0x11d2, \
|
||||
{ 0x95, 0xa2, 0x0, 0x60, 0xb0, 0xc3, 0x44, 0x14 } }
|
||||
|
||||
/**
|
||||
* nsTableRowGroupFrame is the frame that maps row groups
|
||||
* (HTML tags THEAD, TFOOT, and TBODY). This class cannot be reused
|
||||
|
@ -50,6 +54,8 @@ public:
|
|||
friend nsresult
|
||||
NS_NewTableRowGroupFrame(nsIFrame*& aResult);
|
||||
|
||||
NS_METHOD QueryInterface(const nsIID& aIID, void** aInstancePtr);
|
||||
|
||||
NS_IMETHOD SetInitialChildList(nsIPresContext& aPresContext,
|
||||
nsIAtom* aListName,
|
||||
nsIFrame* aChildList);
|
||||
|
|
|
@ -170,5 +170,47 @@ column widths and collapsing borders.</CAPTION>
|
|||
<CAPTION ALIGN=BOTTOM>Table 5 has a scrolling tbody.</CAPTION>
|
||||
</table>
|
||||
|
||||
<BR>
|
||||
This is a table formed from a list with display of table-row and
|
||||
list items with display of table-cell.
|
||||
<DIV style="background-color: orange; width: 230px;">
|
||||
<UL style="display: table-row;">
|
||||
<LI style="display: table-cell;">ONE</LI>
|
||||
<LI style="display: table-cell;">TWO</LI>
|
||||
<LI style="display: table-cell;">THREE</LI>
|
||||
<LI style="display: table-cell;">FOUR</LI>
|
||||
<LI style="display: table-cell;">FIVE</LI>
|
||||
</UL>
|
||||
</DIV>
|
||||
<BR>
|
||||
|
||||
This is a table formed from a list with display of table-row-group and
|
||||
list items with display of table-cell.
|
||||
<BR>
|
||||
<DIV style="background-color: orange; width: 100px;">
|
||||
<UL style="display:table-row-group">
|
||||
<LI style="display:table-cell;">ONE</LI>
|
||||
<LI style="display:table-cell;">TWO</LI>
|
||||
<LI style="display:table-cell;">THREE</LI>
|
||||
<LI style="display:table-cell;">FOUR</LI>
|
||||
<LI style="display:table-cell;">FIVE</LI>
|
||||
<LI style="display:table-cell;">SIX</LI>
|
||||
</UL>
|
||||
</DIV>
|
||||
<BR>
|
||||
|
||||
This is like the previous table plus the list's overflow property set
|
||||
<DIV style="background-color:orange; width:50px; height: 50px;">
|
||||
<UL style="display:table-row-group; overflow:auto; height: 50px;">
|
||||
<LI style="display:table-cell;">ONE</LI>
|
||||
<LI style="display:table-cell;">TWO</LI>
|
||||
<LI style="display:table-cell;">THREE</LI>
|
||||
<LI style="display:table-cell;">FOUR</LI>
|
||||
<LI style="display:table-cell;">FIVE</LI>
|
||||
<LI style="display:table-cell;">SIX</LI>
|
||||
</UL>
|
||||
</DIV>
|
||||
<BR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
|
Загрузка…
Ссылка в новой задаче