水印文本css

时间:2010-05-19 09:23:18

标签: css css-selectors

textarea或输入框中的水印文本的css是什么。

文本应该是不透明的,就像在stackoverflow的标题中说“你的编程问题是什么?在提问时是描述性的”

2 个答案:

答案 0 :(得分:2)

以下a simple example使用真实的<label>而不是滥用默认值以便更容易访问。

<!DOCTYPE HTML>
<html>
    <head>
        <title> Example of having a label that vanishes </title>
        <style type="text/css">
            /* Basic CSS for use even if JS is not around */
            .slim-control {
                color: black;
                background-color: #aaa;
                border: solid black 1px;
                padding: 3px;
                margin: 3px;
                width: 200px;
                overflow: hidden; /* Clear fix */
            }
            .slim-control label {
                float: left;
            }
            .slim-control input {
                clear: left;
                float: right;
                background: #aaa;
                color: black;
                border: solid 1px black;
                width: 150px;
                font-size: 1em;
            }
            /* And if JS is available */
            body.js .slim-control {
                position: relative;
                height: 1em;
            }   
            body.js .slim-control label,
            body.js .slim-control input {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 1em;
                margin: 0;
                padding: 0;
                border: 0;
                z-index: 2;
            }
            body.js .slim-control input {
                background-color: transparent;
                background-color: rgba(100,200,50,.2);
                z-index: 3;
            }

            body.js .slim-control input.non-empty {
                background: #aaa;   
            }

        </style>
    </head>
    <body class="js">
        <form action="." method="post">
            <div class="slim-control">

                <label for="username"> Username </label>
                <input name="username" id="username">
            </div>
            <div class="slim-control">
                <label for="password"> Password </label>
                <input name="password" id="password" type="password">
            </div>

        </form>
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
    <script type="text/javascript">
        (function () {
            var nonEmpty = "non-empty";
            var inputs = jQuery('.slim-control input');
            var setLabelStyle = function setLabelStyle () {
                var label = jQuery(this);
                if (label.val().length) {
                    label.addClass(nonEmpty);
                } else {
                    label.removeClass(nonEmpty);
                }
            };
            inputs.focus(function () { jQuery(this).addClass(nonEmpty); });
            inputs.blur(setLabelStyle);
            inputs.each(setLabelStyle);
        }());
    </script>
    </body>
</html>

答案 1 :(得分:1)

我没有看过他们的代码,但CSS方面唯一有趣的是.style.color在某些情况下被设置为浅灰色。所有这一切都是通过Javascript完成的。你可以比我现在更仔细地研究它,但基本上是:

  1. 首次显示框时,将“空白”文本设置为灰色
  2. 当用户在
  3. 中键入字符时,将其设置为黑色并将区域留空
  4. 如果文本框的文本为空白,则“模糊”重做#1(恢复空白文本并将其灰显)
  5. 当用户点击内部时,您可能希望执行#2,即焦点事件。
  6. 这实际上在Javascript中实现起来非常有趣,你可能甚至可以更好地看到你在SO上看到的功能。