Ionic4: ion-item border-top-left-radius, -top-right, -bottom-left, -bottom-right

Итак, я выполнял проект с Ionic v4, и теперь я не могу заставить работать радиус границы, потому что я использую классы для определения на ngFor, если это первый элемент или последний элемент.

Если это первый элемент, он должен изменить только радиус границы top-left и top-right. И если это последний элемент, он должен изменить только радиус границы bottom-left и bottom-right.

Проблема в том, что поскольку он работает с Shadow DOM, я не могу применить этот CSS.

Я сделал следующее:

В моем компоненте.scss

:host {
  ion-item {
    &.first {
      --border-radius: 12px;
      //   --border-top-left-radius: 12px;
      //   --border-top-left-radius: 12px;
      //   border-top-left-radius: 12px;
      //   border-top-left-radius: 12px;
    }
  }
}

Но это не то, что я хочу, закомментированный CSS не будет работать. И единственная переменная, которая может изменить эти стили Shadow DOM, предназначена для 4 border-radius согласно документации: ion-item Ionic Документация.

Я также пытался вставить style в элемент, но это не сработает.

Если кто-то может пролить свет на это, я был бы очень признателен.

Спасибо за ваше время!

Рассматривали ли вы просто не использовать теневой DOM для этого компонента?

Jay Ordway 15.03.2019 04:38
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
2
1
2 902
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Свойство border-radius может принимать до 4 разных значений.

Значения описываются в следующем порядке: первое значение применяется к верхнему левому углу, второе значение применяется к верхнему правому углу, третье значение применяется к нижнему правому углу, а четвертое значение применяется к нижнему левому углу.

#example {
  border-radius: 50px 20px 30px 10px;
}

You can get more information on the border radius property here

Более того, я думаю, что вы неправильно выбираете первого ребенка

Во вложенном файле SCSS лучше ввести:

&:first-child {
    border-radius: 12px 12px 0 0;
  }

Проверьте это на JSFiddle

Боже мой, я надеюсь, что мой работодатель не прочитает мой вопрос, мой разум был сожжен, когда я задал его, вы совершенно правы.

Ariel 15.03.2019 14:09

Другие вопросы по теме