[CSS] Using single grid-template-area and justify-self to select arrow down icon in select

复制代码
<div class="form-group">
  <label for="standard-select">Standard Select</label>
  <div class="form-field select">
    <select id="standard-select" name="standard-select">
      <option value="Option 1">Option 1</option>
      <option value="Option 2">Option 2</option>
      <option value="Option 3">Option 3</option>
      <option value="Option 4">Option 4</option>
      <option value="Option 5">Option 5</option>
      <option value="Option length">
        Option that has too long of a value to fit
      </option>
    </select>
  </div>
</div>

<div class="form-group">
  <label for="multi-select">Multiple Select</label>
  <div class="form-field select select--multiple">
    <select id="multi-select" name="multi-select" multiple>
      <option value="Option 1">Option 1</option>
      <option value="Option 2">Option 2</option>
      <option value="Option 3">Option 3</option>
      <option value="Option 4">Option 4</option>
      <option value="Option 5">Option 5</option>
      <option value="Option length">
        Option that has too long of a value to fit
      </option>
    </select>
  </div>
</div>
复制代码

 

复制代码
.form-field {
    border-color: var(--color-default, color("default"));

    &:focus {
        @include field-focus;
    }

    &:disabled {
        @include field-disabled;
    }
}

.form-field.select {
    display: grid;
    align-items: center;
    grid-template-areas: "select";

    background-image: linear-gradient(
        to top,
        scale-color(color("white"), $lightness: -10%),
        color("white") 33%
    );

    select, 
    &::after {
        grid-area: select;
    }

    &:not(.select--multiple)::after {
        content: "";
        width: 0.8em;
        height: 0.5em;
        background-color: var(--color-default, color("default"));
        justify-self: end;
        clip-path: polygon(100% 0%, 0 0%, 50% 100%);
    }

    select {
        z-index: 1;

        &[multiple] {
            padding-right: 0;
        }
    }
}
复制代码

 

`select` and `arrow down` are in the same grid template:

grid-template-areas: "select";

If without:

justify-self: end;

for arrow-down, it looks like:

 

With 'justify-self: end' it looks like:

posted @   Zhentiw  阅读(64)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2020-03-05 [RxJS] Just enough about ShareReplay
2020-03-05 [AST Tools] Babel template: replace JQuery
2020-03-05 [Tools] Using z to jump to "frecent" folders - Command Line Power User
2019-03-05 [Algorithm] How to use Max Heap to maintain K smallest items
2019-03-05 [HTML5] Avoiding CSS Conflicts via Shadow DOM CSS encapsulation
2019-03-05 [React] Simplify and Convert a Traditional React Form to Formik
2019-03-05 [Javascript Crocks] Make your own functions safer by lifting them into a Maybe context
点击右上角即可分享
微信分享提示