diff --git a/packages/mdc-select/README.md b/packages/mdc-select/README.md
index aec51fdc564..a11cc1a4986 100644
--- a/packages/mdc-select/README.md
+++ b/packages/mdc-select/README.md
@@ -97,10 +97,15 @@ style dependencies for both the mdc-list and mdc-menu for this component to func
#### Select with pre-selected option
+When dealing with the select component that has pre-selected values, you'll want to ensure that you
+render `mdc-select__label` with the `mdc-select__label--float-above` modifier class and the selected
+option with `aria-selected`. This will ensure that the label moves out of the way of the select's value
+and prevents a Flash Of Un-styled Content (**FOUC**).
+
```html
-
Pick a Food Group
+
Pick a Food Group
diff --git a/packages/mdc-select/foundation.js b/packages/mdc-select/foundation.js
index a921b3d4e71..dbcf0151eb3 100644
--- a/packages/mdc-select/foundation.js
+++ b/packages/mdc-select/foundation.js
@@ -106,10 +106,6 @@ export default class MDCSelectFoundation extends MDCFoundation {
};
this.cancelHandler_ = () => {
this.close_();
-
- if (this.selectedIndex_ === -1) {
- this.adapter_.removeClassFromLabel(cssClasses.LABEL_FLOAT_ABOVE);
- }
};
}
@@ -157,6 +153,9 @@ export default class MDCSelectFoundation extends MDCFoundation {
if (this.selectedIndex_ >= 0) {
selectedTextContent = this.adapter_.getTextForOptionAtIndex(this.selectedIndex_).trim();
this.adapter_.setAttrForOptionAtIndex(this.selectedIndex_, 'aria-selected', 'true');
+ this.adapter_.addClassToLabel(cssClasses.LABEL_FLOAT_ABOVE);
+ } else {
+ this.adapter_.removeClassFromLabel(cssClasses.LABEL_FLOAT_ABOVE);
}
this.adapter_.setSelectedTextContent(selectedTextContent);
}
@@ -214,7 +213,6 @@ export default class MDCSelectFoundation extends MDCFoundation {
const focusIndex = this.selectedIndex_ < 0 ? 0 : this.selectedIndex_;
this.setMenuStylesForOpenAtIndex_(focusIndex);
- this.adapter_.addClassToLabel(cssClasses.LABEL_FLOAT_ABOVE);
this.adapter_.addClassToBottomLine(cssClasses.BOTTOM_LINE_ACTIVE);
this.adapter_.addClass(OPEN);
this.animationRequestId_ = requestAnimationFrame(() => {