【问题标题】:How to style one column of ion-grid?如何设置一列离子网格的样式?
【发布时间】:2021-01-06 22:33:34
【问题描述】:

我在离子行中有三列,其中中间列的大小为 4,而第一和第三列的大小为 3。问题是中间列的填充和宽度在第一个和最后一个图标之间增加了一个间隙。我希望它们以很小的间隙(大约 10-12 像素)粘在一起。我将中间列的最大宽度更改为检查样式中的适合内容,并且它起作用了。但我无法在 scss 中设置样式。

HTML

  <ion-row class="bottom-section ion-align-items-center ion-justify-content-center">
    <ion-col size="3" class="col ion-text-end">
      <ion-button class="delete-btn" color="light" size="large">
        <ion-icon class="delete-icon"  slot="icon-only" size="large" name="trash"></ion-icon>
      </ion-button>
    </ion-col>
    <ion-col size="4" class="col col-2 ion-text-center" width-100>
      <ion-button class="record-btn" color="danger" size="large">
        <ion-icon class="record-icon"  slot="icon-only" size="large" name="mic"></ion-icon>
      </ion-button>
    </ion-col>
    <ion-col size="3" class="col ion-text-start">
      <ion-button class="add-btn" color="light" size="large">
        <ion-icon class="add-icon"  slot="icon-only" size="large" name="add"></ion-icon>
      </ion-button>
    </ion-col>
  </ion-row>

SCSS

.col {
    border: 1px solid;
}

.col-2 {
    --max-width: 100px;
    max-width: 100px;
}

默认样式

必需的样式

【问题讨论】:

    标签: html css ionic-framework sass grid


    【解决方案1】:

    我认为ion-grid 在您需要对少量项目进行更多微调控制时不是一个好的解决方案。试试这样吧。

    <div class="buttons-wrapper">
        <div class="single-button">
          <ion-button color="light" class="delete-btn">
            <ion-icon slot="icon-only" name="trash"></ion-icon>
          </ion-button>
          <ion-label>Delete</ion-label>
        </div>
        <div class="single-button">
          <ion-button color="danger" class="record-btn">
            <ion-icon slot="icon-only" name="mic"></ion-icon>
          </ion-button>
          <ion-label>Record</ion-label>
        </div>
        <div class="single-button">
          <ion-button color="light" class="add-btn">
            <ion-icon slot="icon-only" name="add"></ion-icon>
          </ion-button>
          <ion-label>Add</ion-label>
        </div>
      </div>
    
    .buttons-wrapper {
        display: flex;
        justify-content: center;
        align-items: center;
    
        .single-button {
            text-align: center;
    
            .delete-btn,
            .add-btn {
                margin: 0px 5px;
                height: 50px;
                width: 50px;
                --border-radius: 50%;
                display: block;
            }
    
            .record-btn {
                margin: 0px 5px;
                height: 70px;
                width: 70px;
                --border-radius: 50%;
                display: block;
    
                ion-icon {
                    font-size: 32px;
                }
            }
            ion-label {
                display: inline-block;
                margin-top: 5px;
            }
        }
    
    }
    

    【讨论】:

    • 是的,你是对的。我尝试使用 div 并删除了间隙。但我也想在每个按钮下面写标签。我认为使用网格会更容易。如何使用 div 来实现?
    • 更新了答案以显示您如何做到这一点。 &lt;ion-grid&gt; 非常适合类似表格的布局或不需要精细控制的流畅内容。如果你想做一些更自定义的事情,那么你最好只编写自定义 CSS
    • 是的,谢谢您的信息。显示了标签,但它们不在同一级别。如何将这些标签与 ion-row 置于同一级别?
    • 不确定您所说的“相同级别”是什么意思,或者为什么这很重要?你想完成什么?
    • 由于录制按钮比其他两个按钮大,因此录制标签垂直位于其他两个标签下方。你能把另外两个标签带到唱片公司的水平吗?无论如何,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 2012-02-16
    • 2022-10-20
    • 2012-03-07
    • 2022-11-17
    • 2020-09-12
    相关资源
    最近更新 更多