如何创建 Facebook 状态箭头文本框?

How to create the Facebook Status arrowed textbox?(如何创建 Facebook 状态箭头文本框?)
本文介绍了如何创建 Facebook 状态箭头文本框?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我怎样才能得到一个弯曲的文本框,比如 Facebook 状态文本框,只有 html 和 css?

How can I get a curved TextBox like the Facebook Status TextBox with html and css only?

谁能告诉我怎么做??

推荐答案

我的跨浏览器,Facebook 样式文本框的纯 CSS 版本:

My Cross-Browser, CSS-only version of the Facebook-style textbox:

如何

我在内部容器 div 上使用了 :before(具有 7px 折叠边框,三个透明,一个白色)创建一个三角形,其中边框相交,然后我将它放在具有绝对定位的文本框(覆盖文本框的边框以将三角形附加"到它).

I've used :before on the inner container div (with 7px collapsed borders, three transparents, one white) to create a triangle where the borders intersect themselves, then i placed it just over the textbox with absolute positioning (overriding the textbox's border to "attach" the triangle to it).

根据这个问题,rgba应该使用 代替 transparent 以防止 Firefox 放置不需要的边框;

According to this question, rgba should be used instead of transparent in order to prevent Firefox to put an unwanted border;

然后,为了以跨浏览器的方式为边框着色,我使用 :after 放置一个相同的三角形,大小相同,颜色相似(*) 到文本框的边框,仅比白色三角形高 1px(在顶部位置).

Then, for coloring the border in a cross-browser way, i used :after to place an identical triangle, with the same size, with a color similar(*) to the textbox's borders, just 1px higher (in top position) than the white triangle.

此时,我已使用 z-index 属性将灰色三角形置于白色三角形下方,以便其主体"(底部边框)只有 1px 可见.

At this point, i've used z-index property to place the gray triangle UNDER the white triangle, so that only 1px of its "body" (the bottom border) would have been visible.

这为箭头创建了灰色边框.

This created the gray border to the arrow.

(*) 我选择的颜色比文本框的边框颜色深一点,因为混合两个三角形会产生增亮"效果.使用#888 而不是#bbb,结果是可以接受的,并且比使用原始颜色本身更类似于原始颜色.

(*) I've chosen a color a bit darker than the textbox's borders one, because of the "brightening" effect generated by mixing the two triangles. With #888 instead of #bbb, the result is acceptable and more similar to the original color than using the original color itself.

这里是注释代码和演示:

Here is the commented code and the demo:

演示

http://jsfiddle.net/syTDv/

HTML

<div id="fbContainer">
   <div class="facebookTriangle">  
      <input type="text" id="facebookTextbox" value="some text"/>
   </div>
</div>

CSS

body {
    padding: 30px;
}


/* With this container you can put the textbox anywhere on the page,
 without disturbing the triangles's absolute positioning */
#fbContainer{
  position: relative;
}


/* some adjustments to make the textbox more pretty */
#facebookTextbox{   
   border: 1px solid #bbb !important;
   padding: 5px;
   color: gray;
   font-size: 1em;
   width: 200px;
}


/* block element needed to apply :before and :after */
.facebookTriangle{
  height: 30px;
  padding-top: 10px;
}


/* white triangle */
/* collapsing borders (because of the empty content) 
   creates four triangles, three transparents and one coloured, 
   the bottom one */    
.facebookTriangle:before {
  content: '';
  border-style: solid;
  border-width: 7px;
  border-color: rgba(255,255,255,0) rgba(255,255,255,0) 
                white rgba(255,255,255,0);
  top: -3px;
  position: absolute;
  left: 7px;
  z-index: 2; /* stay in front */
}


/* gray triangle */
/* used as border for white triangle */
.facebookTriangle:after {
  content: '';
  border-style: solid;
  border-width: 7px;
  border-color: rgba(255,255,255,0) rgba(255,255,255,0) 
                #888 rgba(255,255,255,0);  
  top: -4px;
  position: absolute;
  left: 7px;
  z-index: 1; /* stay behind */
}

希望对您有所帮助...

Hope that helps...

这篇关于如何创建 Facebook 状态箭头文本框?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How to test @media print with protractor or selenium?(如何用量角器或硒测试@media print?)
Select OK button from N#39;th modal opened in testcafe(从 testcafe 中打开的第 N 个模式中选择 OK 按钮)
How to click a specified li for an autocomplete ul with Selenium IDE?(如何使用 Selenium IDE 为自动完成 ul 单击指定的 li?)
Test automation html element selectors. Element ID or DataAttribute(测试自动化 html 元素选择器.元素 ID 或 DataAttribute)
navigator.geolocation.getCurrentPosition not allowed on quot;file:///C:/quot; based access(“file:///C:/上不允许 navigator.geolocation.getCurrentPosition基于访问)
Geolocation not working on Safari 5.x on Windows 7/XP(地理定位在 Windows 7/XP 上的 Safari 5.x 上不起作用)