Как создать рамку, которая полностью покрывает смежные углы в CSS?

В языке / структуре-агностическом образе речи преобразование из одного типа или класса в другое известно как литье. Это верно и для .NET, так как ваши первые четыре строки показывают:

object x;
int y;

x = 4;

y = ( int )x;

Языки C и C (например, C #) используют синтаксис (newtype)somevar для кастинга. В VB.NET, например, для этого существуют явные встроенные функции. Последняя строка будет записана как:

y = CInt(x)

Или для более сложных типов:

y = CType(x, newtype)

Где «C» явно не подходит для «cast».

Однако .NET также имеет функцию Convert(). Это не встроенная функция языка (в отличие от вышеприведенных двух), а скорее одна из фреймворков. Это становится яснее, когда вы используете язык, который не обязательно используется вместе с .NET: у них все еще есть свои собственные способы кастинга, но это .NET добавляет Convert().

Как говорит Мэтт , разница в поведении заключается в том, что Convert() более явственно. Вместо того, чтобы просто сообщать компилятору относиться к y как целочисленный эквивалент x, вы специально говорите ему об изменении x таким образом, который подходит для целочисленного класса, , затем присвойте результат y.

В вашем конкретном случае кастинг делает то, что называется «unboxing», тогда как Convert() фактически получит целочисленное значение. Результат будет таким же, но есть тонкие отличия лучше , объясненные Keith .

24
задан Ilmari Karonen 2 September 2015 в 18:43
поделиться

2 ответа

Вместо border-top попробуйте использовать псевдоэлемент :after , чтобы воссоздать нужный эффект.

.box {
  width: 200px;
  height: 100px;
  border: 1px solid #ddd;
  position: relative;
}
.box:after {
  position: absolute;
  content: "";
  width: 100%;
  height: 5px;
  top: -5px;
  background: dodgerblue;
  padding: 1px;
  left: -1px;
}
<div class="box"></div>

Выбор 2:

Использовать linear-gradient() .

.box {
  width: 200px;
  height: 100px;
  border: 1px solid #ddd;
  background: -webkit-linear-gradient(top, dodgerblue 5%, #fff 5%);
  background: -moz-linear-gradient(top, dodgerblue 5%, #fff 5%);
  background: -o-linear-gradient(top, dodgerblue 5%, #fff 5%);
  background: -ms-linear-gradient(top, dodgerblue 5%, #fff 5%);
  background: linear-gradient(top, dodgerblue 5%, #fff 5%);
}
<div class="box"></div>
16
ответ дан approxiblue 2 September 2015 в 18:43
поделиться

Попробуйте это:

.box {
  outline: 2px solid #ddd;
  margin-top: -2px;
  border-top: 10px solid #3F9BD0;
  min-width:100px;
  min-height:100px;
  float:left;
}
<div class="box"></div>
1
ответ дан Madalina Taina 2 September 2015 в 18:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: