<h3>したいこと</h3> <p>Material-UIのSelect<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%DD%A1%BC%A5%CD%A5%F3%A5%C8">コンポーネント</a>内にあるテキスト部分のスタイルを変更したかった。 具体的には、下図のようにテキストエリアの範囲を縮小したかった。</p> <p><b>変更前</b></p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/f/fujjima/20210208/20210208121616.png" alt="f:id:fujjima:20210208121616p:plain" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><b>変更後</b></p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/f/fujjima/20210208/20210208121722.png" alt="f:id:fujjima:20210208121722p:plain" title="" class="hatena-fotolife" itemprop="image"></span></p> <h3>タグ構造</h3> <p>Select周りの構造は下記の通りになっているとする。 今回「ここから〜ここまで」で囲まれている範囲のスタイルを変更することを目的とした。 該当部分のReact<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%DD%A1%BC%A5%CD%A5%F3%A5%C8">コンポーネント</a>も記載しているが、jsx用の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B7%A5%F3%A5%BF%A5%C3%A5%AF%A5%B9">シンタックス</a>ハイライトを当てていないので、雰囲気でおなしゃす。</p> <pre class="code lang-html" data-lang="html" data-unlink> <span class="synIdentifier">&lt;</span><span class="synStatement">div</span><span class="synIdentifier"> </span><span class="synType">class</span><span class="synIdentifier">=</span><span class="synConstant">&quot;MuiInputBase-root MuiOutlinedInput-root makeStyles-statusMenu-16&quot;</span><span class="synIdentifier">&gt;</span> <span class="synComment">&lt;!-- ここから --&gt;</span> <span class="synIdentifier">&lt;</span><span class="synStatement">div</span> <span class="synIdentifier"> </span><span class="synType">class</span><span class="synIdentifier">=</span><span class="synConstant">&quot;MuiSelect-root MuiSelect-select MuiSelect-selectMenu MuiSelect-outlined MuiInputBase-input MuiOutlinedInput-input&quot;</span> <span class="synIdentifier"> </span><span class="synType">tabindex</span><span class="synIdentifier">=</span><span class="synConstant">&quot;0&quot;</span> <span class="synIdentifier"> role=</span><span class="synConstant">&quot;button&quot;</span> <span class="synIdentifier"> aria-haspopup=</span><span class="synConstant">&quot;listbox&quot;</span> <span class="synIdentifier"> aria-labelledby=</span><span class="synConstant">&quot;demo-simple-select-filled&quot;</span> <span class="synIdentifier"> </span><span class="synType">id</span><span class="synIdentifier">=</span><span class="synConstant">&quot;demo-simple-select-filled&quot;</span> <span class="synIdentifier"> &gt;</span> 未着手 <span class="synIdentifier">&lt;/</span><span class="synStatement">div</span><span class="synIdentifier">&gt;</span> <span class="synComment">&lt;!-- ここまで --&gt;</span> <span class="synIdentifier">&lt;</span><span class="synStatement">input</span> <span class="synIdentifier"> aria-</span><span class="synType">hidden</span><span class="synIdentifier">=</span><span class="synConstant">&quot;true&quot;</span> <span class="synIdentifier"> </span><span class="synType">tabindex</span><span class="synIdentifier">=</span><span class="synConstant">&quot;-1&quot;</span> <span class="synIdentifier"> </span><span class="synType">class</span><span class="synIdentifier">=</span><span class="synConstant">&quot;MuiSelect-nativeInput&quot;</span> <span class="synIdentifier"> </span><span class="synType">value</span><span class="synIdentifier">=</span><span class="synConstant">&quot;waiting&quot;</span> <span class="synIdentifier"> /&gt;&lt;</span>svg <span class="synIdentifier"> </span><span class="synType">class</span><span class="synIdentifier">=</span><span class="synConstant">&quot;MuiSvgIcon-root MuiSelect-icon MuiSelect-iconOutlined&quot;</span> <span class="synIdentifier"> focusable=</span><span class="synConstant">&quot;false&quot;</span> <span class="synIdentifier"> viewBox=</span><span class="synConstant">&quot;0 0 24 24&quot;</span> <span class="synIdentifier"> aria-</span><span class="synType">hidden</span><span class="synIdentifier">=</span><span class="synConstant">&quot;true&quot;</span> <span class="synIdentifier"> &gt;</span> <span class="synIdentifier">&lt;</span>path<span class="synIdentifier"> d=</span><span class="synConstant">&quot;M7 10l5 5 5-5z&quot;</span><span class="synIdentifier">&gt;&lt;/</span>path<span class="synIdentifier">&gt;</span> <span class="synIdentifier">&lt;/</span>svg<span class="synIdentifier">&gt;</span> <span class="synIdentifier">&lt;</span><span class="synStatement">fieldset</span> <span class="synIdentifier"> aria-</span><span class="synType">hidden</span><span class="synIdentifier">=</span><span class="synConstant">&quot;true&quot;</span> <span class="synIdentifier"> </span><span class="synType">class</span><span class="synIdentifier">=</span><span class="synConstant">&quot;PrivateNotchedOutline-root-29 MuiOutlinedInput-notchedOutline&quot;</span> <span class="synIdentifier"> </span><span class="synType">style</span><span class="synIdentifier">=</span><span class="synConstant">&quot;padding-left: 8px&quot;</span> <span class="synIdentifier"> &gt;</span> <span class="synIdentifier">&lt;</span><span class="synStatement">legend</span><span class="synIdentifier"> </span><span class="synType">class</span><span class="synIdentifier">=</span><span class="synConstant">&quot;PrivateNotchedOutline-legend-30&quot;</span><span class="synIdentifier"> </span><span class="synType">style</span><span class="synIdentifier">=</span><span class="synConstant">&quot;width: 0.01px&quot;</span><span class="synIdentifier">&gt;</span> <span class="synIdentifier">&lt;</span><span class="synStatement">span</span><span class="synIdentifier">&gt;</span>&lt;200b&gt;<span class="synIdentifier">&lt;/</span><span class="synStatement">span</span><span class="synIdentifier">&gt;</span> <span class="synIdentifier">&lt;/</span><span class="synStatement">legend</span><span class="synIdentifier">&gt;</span> <span class="synIdentifier">&lt;/</span><span class="synStatement">fieldset</span><span class="synIdentifier">&gt;</span> <span class="synIdentifier">&lt;/</span><span class="synStatement">div</span><span class="synIdentifier">&gt;</span> </pre> <pre class="code lang-javascript" data-lang="javascript" data-unlink>&lt;Select id=<span class="synConstant">&quot;demo-simple-select-filled&quot;</span> value=<span class="synIdentifier">{</span>task.<span class="synStatement">status</span><span class="synIdentifier">}</span> variant=<span class="synConstant">&quot;outlined&quot;</span> className=<span class="synIdentifier">{</span>classes.statusMenu<span class="synIdentifier">}</span> &gt; &lt;MenuItem value=<span class="synConstant">&quot;waiting&quot;</span>&gt;未着手&lt;/MenuItem&gt; &lt;MenuItem value=<span class="synConstant">&quot;working&quot;</span>&gt;作業中&lt;/MenuItem&gt; &lt;MenuItem value=<span class="synConstant">&quot;completed&quot;</span>&gt;完了&lt;/MenuItem&gt; &lt;MenuItem value=<span class="synConstant">&quot;pending&quot;</span>&gt;保留&lt;/MenuItem&gt; &lt;/Select&gt; </pre> <h3>方法</h3> <p><code>MenuItem</code>のinput部分の<code>MuiOutlinedInput-input</code>に対してスタイルを設定する</p> <pre class="code lang-css" data-lang="css" data-unlink>statusMenu: <span class="synIdentifier">{</span> <span class="synConstant">'&amp; .MuiOutlinedInput-input'</span>: { paddingBottom: <span class="synConstant">'7px'</span><span class="synSpecial">,</span> paddingTop: <span class="synConstant">'7px'</span><span class="synSpecial">,</span> <span class="synIdentifier">}</span><span class="synSpecial">,</span> <span class="synError">}</span><span class="synSpecial">,</span> </pre>