GVKun编程网logo

如何创建一个完全覆盖CSS中相邻角的边框?(如何创建一个完全覆盖css中相邻角的边框)

10

如果您想了解如何创建一个完全覆盖CSS中相邻角的边框?的相关知识,那么本文是一篇不可错过的文章,我们将对如何创建一个完全覆盖css中相邻角的边框进行全面详尽的解释,并且为您提供关于CSS–SELECT

如果您想了解如何创建一个完全覆盖CSS中相邻角的边框?的相关知识,那么本文是一篇不可错过的文章,我们将对如何创建一个完全覆盖css中相邻角的边框进行全面详尽的解释,并且为您提供关于CSS – SELECT元素 – BORDER-RADIUS – Opera显示选择输入后面的边框?因为没有弯曲的边框?、css – 为什么没有在IE中显示的边框?、css – 如何从Firefox中的阴影中删除奇怪的边框?、css – 如何创建响应三角形作为右边框?的有价值的信息。

本文目录一览:

如何创建一个完全覆盖CSS中相邻角的边框?(如何创建一个完全覆盖css中相邻角的边框)

如何创建一个完全覆盖CSS中相邻角的边框?(如何创建一个完全覆盖css中相邻角的边框)

我有一个具有1px边框的div,我正在尝试为该div创建另一种颜色的3px边框。我使用这个代码:
Box {
  border: 1px solid #ddd;
  border-top: 3px solid #3F9BD0;
}

但在角落边界不好,看图像:

如何让这个边框看起来不错,就像这样:

小提琴:https://jsfiddle.net/15tory3z/

解决方法

而不是边框​​顶端,尝试使用 :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;
}
<divhttps://www.jb51.cc/tag/Box/" target="_blank">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,#fff 5%);
  background: -o-linear-gradient(top,#fff 5%);
  background: -ms-linear-gradient(top,#fff 5%);
  background: linear-gradient(top,#fff 5%);
}
<divhttps://www.jb51.cc/tag/Box/" target="_blank">Box"></div>

CSS – SELECT元素 – BORDER-RADIUS – Opera显示选择输入后面的边框?因为没有弯曲的边框?

CSS – SELECT元素 – BORDER-RADIUS – Opera显示选择输入后面的边框?因为没有弯曲的边框?

我在设置歌剧中的选择元素时遇到了麻烦.

会发生什么,是在css中显示应用于此元素的大多数样式都显示在Opera(11.60)中,但由于某种原因,比特也会被遗漏,如框阴影效果和边框半径.

在我看来,opera在这些样式上方显示了select元素,正如我在转换中注意到弯曲边框确实存在,它就在select元素的后面.如下所示,未聚焦时的选择元素似乎没有边框半径效果,但是当焦点应用于元素时,您会在转换中看到边框,然后它再次消失在元素后面.

在IE 9,Firefox 9和最新版本的Chrome中,有问题的select元素几乎都是统一的.总而言之,包括Opera在内,输入元素完全采用了相同的元素样式.

这是HTML:

<divhttps://www.jb51.cc/tag/Box/" target="_blank">Box">
<form method="post" action="'.$_SERVER['PHP_SELF'].'" name="search">
<label for="bizName">Biz Name:</label>
<input name="bizName"type="search" placeholder="Search..." />
<label for="bizCategory">Biz Category:</label>
<select name="bizCategory"onchange="this.form.submit()">
    <option>Choose</option>
</select>
<button type="submit" name="searching"value="Search">Search</button>
</form>
<!-- end .searchBox --></div>

继承页面的CSS:

input,select {
    background: #fcfcfc;
    border: 0px none;
    font: bold 12px Arial,Helvetica,Sans-serif;
    color: #6a6f75;
    -webkit-border-radius: 20px;
    -moz-border-radius: 20px;
    border-radius: 20px;
    text-shadow: 0 2px 2px rgba(0,0.3); 
    -webkit-Box-shadow: 0 1px 0 rgba(255,255,0.1),0 1px 3px rgba(0,0.2) inset;
    -moz-Box-shadow:,0 1px 0 rgba(255,0.2) inset;
    -o-Box-shadow: 0 1px 0 rgba(255,0.2) inset;
    Box-shadow: 0 1px 0 rgba(255,0.2) inset;
    -webkit-background-clip: padding-Box;
    -webkit-transition: all 0.7s ease-out 0s;  /* Saf3.2+,Chrome */
    -moz-transition: all 0.7s ease-out 0s;  /* FF4+ */
    -ms-transition: all 0.7s ease-out 0s;  /* IE10? */
    -o-transition: all 0.7s ease-out 0s;  /* Opera 10.5+ */
    transition: all 0.7s ease-out 0s;
}

input {
    padding: 7px 25px;
    width: 135px;
}

select {
    padding: 7px 10px;
    width: 185px;
}

input:focus,select:focus
{
    background: #6699cc;
    color: #e7f3ff;
    text-shadow:
        -1px -1px 0 #666,1px -1px 0 #666,-1px 1px 0 #666,1px 1px 0 #666;
    -webkit-Box-shadow: 0 1px 0 rgba(255,0 1px 0 rgba(0,0.9) inset;
    -moz-Box-shadow: 0 1px 0 rgba(255,0.9) inset;
    Box-shadow: 0 1px 0 rgba(255,0.9) inset;
}

.bizCategory {
    margin-right: 15px;
}

我不明白为什么Opera会以这种方式做出反应,因为我相信它确实支持W3C规范?

无论如何,我的假设是Opera正在为这个select标签应用某种默认样式.但这只是一个假设.

是否有其他人能够在这方面提供任何意见;或者之前遇到过这个问题的人是否能够解释这里到底发生了什么?

提前感谢您花时间阅读本文!

解决方法

改进了2015年的答案:

我发现我使用的风格选择列表在我们现在所用的时间非常需要 – 所以这里曾经是我迄今为止最好的体验.并且实际上没有任何解决该问题的JavaScript解决方案.您可以使用无序列表并列出元素并对其进行样式化,并使用一些javascript从所选li中获取信息并通过ajax post方法发布.没有任何框架的IE8方法看起来像这样:

var request = new XMLHttpRequest();
request.open('POST','/my/url',true);
request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
request.send(data);

如果您正在使用框架结帐,则内置选择下方的角度和引导程序.

Angular select来自angular material,你可以根据自己的喜好或自己的风格来设计风格,使用框架javascript我做了同样的事情.

还有Bootstrap UI这是一个适用于各种表格领域的角度框架.

引导

如果您在项目中没有使用角度,我认为引导程序解决它的方式是迄今为止我用过的最好的方式. Bootstrap select

老答案

一般来说,我会说从来没有重新设计一个选择按钮,但无论如何检查它的方式来应对它https://gist.github.com/itsadok/1139558

如果您只需要更新的浏览器,您可以使用它,并像其他任何对象一样设置样式:

-webkit-appearance: none;
   -moz-appearance:    none;
   appearance:         none;

看一些有关它的东西HERE

或者我会去寻找一个javascript解决方案那里有很多人已经完成它并像这样分享:adam.co/lab/jquery/customselect或者这个bulgaria-web-developers.com/projects/javascript/selectbox或者像我在j1和li的jquery插件构建我自己

在你的问题中,你甚至可以选择像“ul& li”这样的菜单结构,点击类似于THIS FIDDLE的jquery调用

只需从“.yourtextholder”中取出文本并发送到网址

css – 为什么没有在IE中显示的边框?

css – 为什么没有在IE中显示的边框?

为什么tfoot tr的边界:第一个孩子没有在IE中显示.我正在检查IE7.

字体重量:粗体;背景:黄色显示在IE中但边框没有显示

table {
    border-collapse: collapse;
    border-spacing: 0;
}

table tfoot tr:first-child {
    font-weight:bold;
    background:yellow;
    border-top:2px solid red; 
    border-bottom:2px solid red;
}

HTML

<table cellpadding="0" cellspacing="0">
 <thead>
  <tr>
   <th align="left" scope="col">XXXX</th>
   <th align="right" scope="col">XXXX</th>
   <th align="right" scope="col">XXXX</th>
   <th align="right" scope="col">XXXX</th>
  </tr>
 </thead>
  <tfoot>
  <tr>
   <td colspan="3">XXXX</td>
   <td align="right">XXX</td>
  </tr>
   <tr>
   <td colspan="4">XXX</td>
   </tr>
 </tfoot>
 <tbody>
  <tr>
   <td align="left">XXXX</td>
   <td align="right">XXXX</td>
   <td align="right">XXXX</td>
   <td align="right">XXXX</td>
  </tr>
 </tbody>
</table>

更新:

我正在使用这个doctype

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">

解决方法

除了出于语义原因,我会避免使用tr元素,因为它们并不真正“存在”.你最好以表格单元格为目标,如下所示:

table tfoot tr:first-child th,table tfoot tr:first-child td {
    font-weight:bold;
    background:yellow;
    border-top:2px solid red; 
    border-bottom:2px solid red;
}

此外,由于您直接使用嵌套元素,因此您可以使用子选择器,这对于浏览器来说更快解析(它们只需要向上/向下搜索一个级别).

table > tfoot > tr:first-child > th,table > tfoot > tr:first-child > td {
    ...
}

css – 如何从Firefox中的阴影中删除奇怪的边框?

css – 如何从Firefox中的阴影中删除奇怪的边框?

在Firefox http://jsfiddle.net/qwbpZ/4/中看到这个小提琴

在悬停时,您将看到此灰色线条

它在谷歌浏览器中很好,但这个灰色边框出现在其他浏览器中.
我怎么解决这个问题?

CSS

a,a:visited {color:#fff}

.btn {
  display: inline-block;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  border-radius: 8px;
  -webkit-Box-shadow: 0 9px 0 #000000,0 13px 0 rgba(0,0.1);
  -moz-Box-shadow: 0 9px 0 #000000,0.1);
  Box-shadow: 0 9px 0 #000000,0.1);
  -webkit-transition: -webkit-Box-shadow .2s ease-in-out;
  -moz-transition: -moz-Box-shadow .2s ease-in-out;
  -o-transition: -o-Box-shadow .2s ease-in-out;
  transition: Box-shadow .2s ease-in-out;
  padding: 0px;
        background: black; /*  see ? */
}

.btn span {
  display: inline-block;
  padding: 22px 22px 11px;
  font-family: Arial,sans-serif;
  line-height: 1;
  text-shadow: 0 -1px 1px rgba(19,65,88,.8);
  background: #2e2e2e;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  border-radius: 8px;
  -webkit-Box-shadow: inset 0 -1px 1px rgba(255,255,.15);
  -moz-Box-shadow: inset 0 -1px 1px rgba(255,.15);
  Box-shadow: inset 0 -1px 1px rgba(255,.15);
  -webkit-transition: -webkit-transform .2s ease-in-out;
  -moz-transition: -moz-transform .2s ease-in-out;
  -o-transition: -o-transform .2s ease-in-out;
  transition: transform .2s ease-in-out;
  color: #FFF;
        font-size: 32px;
        border: 0
}

.btn:hover {
  -webkit-Box-shadow: 0 8px 0 #000,0 12px 10px rgba(0,.3);
  -moz-Box-shadow: 0 8px 0 #000,.3);
  Box-shadow: 0 8px 0 #000,.3);
}

.btn:hover span {
  -webkit-transform: translate(0,-4px);
  -moz-transform: translate(0,-4px);
  -o-transform: translate(0,-4px);
  transform: translate(0,-4px);
}

.btn:active {
  -webkit-Box-shadow: 0 8px 0 #000,.3);
  -webkit-transition: -webkit-Box-shadow .2s ease-in-out;
  -moz-transition: -moz-Box-shadow .2s ease-in-out;
  -o-transition: -o-Box-shadow .2s ease-in-out;
  transition: Box-shadow .2s ease-in-out;
}
.btn:active span { 



  -webkit-transform: translate(0,0px);
  -moz-transform: translate(0,0px);
  -o-transform: translate(0,0px);
  transform: translate(0,0px);
}

解决方法

似乎没有完美的解决方案:阴影和边界半径之间的这种抗偏置像素是粘性的.

所以,我想出了以下两个解决方案:

>使用额外的伪元素,这将成为问题所在:http://jsfiddle.net/kizu/qwbpZ/5/
>添加更多额外的黑色阴影(正常和插入):http://jsfiddle.net/kizu/qwbpZ/6/ – 我在这里添加了两个,但仍然有一些像素可见,如果你再添加两个,它几乎可以.

很遗憾,但这些并不是通用的解决方案,我找不到合适的方法来修复bug本身.

css – 如何创建响应三角形作为右边框?

css – 如何创建响应三角形作为右边框?

我正在尝试为一个边框创建一个响应三角形,只有在悬停时才可见.我尝试了下面的代码,但它不起作用,因为它使用静态边框宽度.当我有一个单字符串(单行)链接时,它是完美的,但是当字符串更多(超过一行)时,它就失败了.

Example here

代码在这里:

<ul>
  <li><a href="#">Lorem ipsum</a></li>
  <li><a href="#">Lorem ipsum</a></li>
  <li><a href="#">Lorem ipsum dolor sit amet</a></li>
</ul>

SCSS在这里:

ul{
  width:120px;
  li{
    list-style-type: none;
    a{
      position:relative;
      display:block;
      padding:10px;
      color:#00f;
      text-decoration: none;
      &:hover{
        color:#fff;
        background:#00f;
        &:after{
          content:'';
          position: absolute;
          top: 0;
          right: -5px;
          height: 0;
          border-style: solid;
          border-width: 19px 0 19px 11px;
          border-color: #fff #fff #fff #00f;
        }
      }
    }
  }
}

最后一个链接失败.使用图像或图片不是解决问题的方法.

解决方法

您不能使用边框三角形方法在此处创建三角形,因为元素的高度是动态的.相反,您可以使用以下任何替代方案:

内联SVG剪辑路径:推荐

您可以使用内联SVG和剪辑路径来生成具有三角效果的条形.剪辑路径仅在悬停在标签上时应用,因此正常状态不受影响.这个browser support比CSS等同得多.

ul {
  width: 120px;
}
li {
  list-style-type: none;
}
a {
  position: relative;
  display: block;
  padding: 10px;
  color: #00f;
  text-decoration: none;
}
a:hover {
  -webkit-clip-path: url(#clip-shape);
  -moz-clip-path: url(#clip-shape);
  clip-path: url(#clip-shape);
  background: crimson;
}
<svg width="0" height="0">
  <defs>
    <clipPath id="clip-shape" clipPathUnits="objectBoundingBox">
      <polygon points="0,0 0.8,0 1,0.5 0.8,1 0,1" />
    </clipPath>
  </defs>
</svg>

<ul>
  <li><a href="#">Lorem ipsum</a>
  </li>
  <li><a href="#">Lorem ipsum</a>
  </li>
  <li><a href="#">Lorem ipsum dolor sit amet</a>
  </li>
</ul>

转换:

您可以在伪元素上使用transform:rotate(45deg)来生成三角形,然后将其放置在a的末尾以生成形状.父级有一个溢出:隐藏设置,用于剪切不需要显示的三角形部分.

ul {
  width: 120px;
}
li {
  list-style-type: none;
}
a {
  position: relative;
  display: inline-block;
  color: blue;
  text-decoration: none;
  padding: 5px 25px 5px 5px;
  overflow: hidden;
}
a:after {
  content: '';
  position: absolute;
  top: 50%;
  right: 0%;
  height: 100%;
  width: 100%;
  background-color: inherit;
  transform-origin: 100% 0;
  transform: rotate(45deg);
  z-index: -1;
}
a:before {
  position: absolute;
  content: '';
  top: 0px;
  left: 0px;
  height: 100%;
  width: calc(100% - 25px);
  background-color: inherit;
  z-index: -1;
}
a:hover {
  background: crimson;
  background-clip: content-Box;
  color: beige;
}
<!-- Library included just to avoid prefixes so that users with older browser can view -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>

<ul>
  <li><a href="#">Lorem ipsum</a>
  </li>
  <li><a href="#">Lorem ipsum</a>
  </li>
  <li><a href="#">Lorem ipsum dolor sit amet</a>
  </li>
</ul>

或者,您可以使用两个伪元素和一个变换:skew(45deg)应用于它们(在相反的方向)以获得三角形形状.这里父母也有溢出:隐藏设置.

ul {
  width: 120px;
}
li {
  list-style-type: none;
  margin-bottom: 10px;
}
a {
  position: relative;
  display: block;
  padding: 10px;
  color: #00f;
  text-decoration: none;
  overflow: hidden;
}
a:before,a:after {
  position: absolute;
  content: '';
  height: 50%;
  width: 100%;
  left: -15%;
  z-index: -1;
}
a:before {
  top: 0px;
  transform: skew(45deg);
}
a:after {
  bottom: 0px;
  transform: skew(-45deg);
}
a:hover:after,a:hover:before {
  background: crimson;
}
a:hover{
  color: beige;
}
<!-- Library included just to avoid prefixes so that users with older browser can view -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>

<ul>
  <li><a href="#">Lorem ipsum</a>

  </li>
  <li><a href="#">Lorem ipsum</a>

  </li>
  <li><a href="#">Lorem ipsum dolor sit amet</a>

  </li>
</ul>

这些可能是最接近具有良好浏览器支持的纯CSS解决方案.然而,当高度进一步增加时,它们仍然需要对诸如padding-right(用于旋转方法)和left(用于skew方法)等属性进行一些调整,因此不建议这样做.

CSS剪辑路径:

您可以使用多边形剪辑路径创建一个在悬停时具有三角效果的条形图.这里的缺点是CSS clip-path的浏览器支持不佳.

ul {
  width: 120px;
}
li {
  list-style-type: none;
}
a {
  position: relative;
  display: block;
  padding: 10px;
  color: #00f;
  text-decoration: none;
}
a:hover {
  -webkit-clip-path: polygon(0% 0%,80% 0%,100% 50%,80% 100%,0% 100%);
  background: crimson;
}
<ul>
  <li><a href="#">Lorem ipsum</a>
  </li>
  <li><a href="#">Lorem ipsum</a>
  </li>
  <li><a href="#">Lorem ipsum dolor sit amet</a>
  </li>
</ul>

线性渐变:

您也可以使用线性渐变和伪元素组合,如下面的代码片段,但已知渐变会产生锯齿状边缘,并不是真正推荐的.

ul {
  width: 120px;
}
li {
  list-style-type: none;
}
a {
  position: relative;
  display: block;
  padding: 10px;
  color: #00f;
  text-decoration: none;
}
a:after {
  content: '';
  display: none;
  position: absolute;
  right: -25px;
  top: 0px;
  width: 50px;
  height: 100%;
  background: linear-gradient(to top left,rgba(0,0) 50%,crimson 50%),linear-gradient(to top right,crimson 50%,0) 50%);
  background-size: 50% 50%;
  background-repeat: no-repeat;
  background-position: 100% 100%,100% 0%;
  z-index: -1;
}
a:hover {
  background: crimson;
}
a:hover:after {
  display: block;
}
<!-- Library included just to avoid prefixes so that users with older browser can view -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>

<ul>
  <li><a href="#">Lorem ipsum</a>
  </li>
  <li><a href="#">Lorem ipsum</a>
  </li>
  <li><a href="#">Lorem ipsum dolor sit amet</a>
  </li>
</ul>

关于如何创建一个完全覆盖CSS中相邻角的边框?如何创建一个完全覆盖css中相邻角的边框的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于CSS – SELECT元素 – BORDER-RADIUS – Opera显示选择输入后面的边框?因为没有弯曲的边框?、css – 为什么没有在IE中显示的边框?、css – 如何从Firefox中的阴影中删除奇怪的边框?、css – 如何创建响应三角形作为右边框?的相关知识,请在本站寻找。

本文标签: