setDivCentered function
void
setDivCentered(
- DivElement div, {
- bool centerVertically = true,
- bool centerHorizontally = true,
- bool checkBootstrapClasses = true,
Sets div
as centered content, using display
property as table
and sub
div elements display
property as table-cell
.
Implementation
void setDivCentered(DivElement div,
{bool centerVertically = true,
bool centerHorizontally = true,
bool checkBootstrapClasses = true}) {
div.style.display =
isInlineElement(div, checkBootstrapClasses: checkBootstrapClasses)
? 'inline-table'
: 'table';
div.classes.removeAll(_divCenteredBootstrapConflictingClasses);
var subDivs = div.querySelectorAll(':scope > div');
for (var subDiv in subDivs) {
print(subDiv.outerHtml);
subDiv.classes.removeAll(_divCenteredBootstrapConflictingClasses);
subDiv.style.display = 'table-cell';
if (centerHorizontally) {
subDiv.style.textAlign = 'center';
}
if (centerVertically) {
subDiv.style.verticalAlign = 'middle';
}
var contentDivs = subDiv.querySelectorAll(':scope > div');
for (var contentDiv in contentDivs) {
if (!isInlineElement(contentDiv as DivElement,
checkBootstrapClasses: checkBootstrapClasses)) {
contentDiv.style.display = 'inline-block';
}
}
}
}