新聞中心
在線演示 本地下載

山東網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
過去我們開發(fā)登錄和注冊功能大都使用javascript來實現(xiàn),今天我們介紹的這個登錄及其注冊表單不走常人路,使用純CSS3和HTML5來實現(xiàn)同樣的功能。
這里我們使用CSS3的偽類:target。我們使用CSS3和圖標(biāo)字體。主要的想法是展示登錄表單并且提供一個鏈接可以轉(zhuǎn)向注冊表單。
請大家注意這里只是一個簡單的演示,不是所有的瀏覽器都支持:target,如果你需要在產(chǎn)品環(huán)境中使用,你需要使用對應(yīng)的代碼來處理對于老瀏覽器支持的fallback。
HTML
在html代碼中,我們構(gòu)建倆個表單并且把第二個表單隱藏。如下:
我 們在這里添加了HTML5相關(guān)元素,并且使用了一些新的輸入控件。input=password自動隱藏用戶輸入。input=email使得瀏覽器檢查 是否用戶輸入是正確的email。同時我們添加了require=required屬性。支持這個屬性的瀏覽器將不允許用戶遞交表單除非所有的輸入?yún)^(qū)域都 是正確,大家可能注意到這里不需要使用javascript。autocomplete=on屬性將會基于用戶輸入預(yù)先的填入內(nèi)容。我們同時也可以使用一 些不錯的placeholder來提示用戶應(yīng)該輸入的內(nèi)容。
接下來可能是倆個比較有趣的部分。你或許注意到了頂端的倆個鏈接。這是一個能夠幫助我們的表單更加方便的使用anchor處理的小技巧,這樣當(dāng)我們點擊切換鏈接并且觸發(fā):target的時候?qū)⒉粫缭胶荛L的頁面。
第二個小技巧是使用icon字體。我們將會使用一個data-attribute來展示圖標(biāo)。通過使用對應(yīng)的字符來設(shè)定data-icon="icon_charactoer",我們只需要一個CSS屬性選擇器來樣式化所有的圖標(biāo)。如果你對這個有興趣,可以閱讀:24 Ways: Displaying Icons with Fonts and Data- Attributes。
CSS
為了使得代碼更加清晰,在教程里我們忽略了瀏覽器提供商指定的前綴, 當(dāng)然你可以在對應(yīng)代碼中找到相關(guān)的設(shè)定。當(dāng)然我們使用了很多不錯的CSS3技巧可能不在所有的瀏覽器中生效。
倆個表單的樣式
首先我們配置容器的樣式:
- #subscribe,
- #login{
- position: absolute;
- top: 0px;
- width: 88%;
- padding: 18px 6% 60px 6%;
- margin: 0 0 35px 0;
- background: rgb(247, 247, 247);
- border: 1px solid rgba(147, 184, 189,0.8);
- box-shadow:
- 0pt 2px 5px rgba(105, 108, 109, 0.7),
- 0px 0px 8px 5px rgba(208, 223, 226, 0.4) inset;
- border-radius: 5px;
- }
- #login{
- z-index: 22;
- }
這里我們添加了一個漂亮的盒式陰影(box shadow)來創(chuàng)建2個陰影:一個inset用來創(chuàng)建內(nèi)部藍(lán)色,還有一個外部陰影。這里我們稍微解釋一下z-index。
在下面代碼中,我們定義了標(biāo)題的樣式,使用了background-clip。
- /**** general text styling ****/
- #wrapper h1{
- font-size: 48px;
- color: rgb(6, 106, 117);
- padding: 2px 0 10px 0;
- font-family: 'FranchiseRegular','Arial Narrow',Arial,sans-serif;
- font-weight: bold;
- text-align: center;
- padding-bottom: 30px;
- }
- /** For the moment only webkit supports the background-clip:text; */
- #wrapper h1{
- background:
- -webkit-repeating-linear-gradient(-45deg,
- rgb(18, 83, 93) ,
- rgb(18, 83, 93) 20px,
- rgb(64, 111, 118) 20px,
- rgb(64, 111, 118) 40px,
- rgb(18, 83, 93) 40px);
- -webkit-text-fill-color: transparent;
- -webkit-background-clip: text;
- }
- #wrapper h1:after{
- content:' ';
- display:block;
- width:100%;
- height:2px;
- margin-top:10px;
- background:
- linear-gradient(left,
- rgba(147,184,189,0) 0%,
- rgba(147,184,189,0.8) 20%,
- rgba(147,184,189,1) 53%,
- rgba(147,184,189,0.8) 79%,
- rgba(147,184,189,0) 100%);
- }
大家注意目前只有webkit的瀏覽器支持background-clip,所以我們將只為webkit創(chuàng)建條紋式的背景,我們將這個特效添加到H1標(biāo)題。 因為目前只能在webkit瀏覽器上生效,我們將使用webkit前綴。只使用-webkit-prefix是一個糟糕的習(xí)慣,這里只是為了演示,你不應(yīng) 該在一個正式的網(wǎng)站中使用!-webkit-text-fill-color:trasparent幫助你生成一個透明的背景。當(dāng)然其它瀏覽器都會忽略。
我們使用:after偽類來在標(biāo)題下創(chuàng)建了一個淡出的直線效果。我們對直線兩端使用2px的高度漸變并且淡出背景到0。
接下來我們使的輸入更好漂亮。
- /**** advanced input styling ****/
- /* placeholder */
- ::-webkit-input-placeholder {
- color: rgb(190, 188, 188);
- font-style: italic;
- }
- input:-moz-placeholder,
- textarea:-moz-placeholder{
- color: rgb(190, 188, 188);
- font-style: italic;
- }
- input {
- outline: none;
- }
首先我們定義了input樣式并且刪除了outline。注意outline幫助用戶知道目前聚焦到那個輸入項,如果你刪除你應(yīng)該提供:active和:focus。
- /* all the input except submit and checkbox */
- #wrapper input:not([type="checkbox"]){
- width: 92%;
- margin-top: 4px;
- padding: 10px 5px 10px 32px;
- border: 1px solid rgb(178, 178, 178);
- box-sizing : content-box;
- border-radius: 3px;
- box-shadow: 0px 1px 4px 0px rgba(168, 168, 168, 0.6) inset;
- transition: all 0.2s linear;
- }
- #wrapper input:not([type="checkbox"]):active,
- #wrapper input:not([type="checkbox"]):focus{
- border: 1px solid rgba(91, 90, 90, 0.7);
- background: rgba(238, 236, 240, 0.2);
- box-shadow: 0px 1px 4px 0px rgba(168, 168, 168, 0.9) inset;
- }
這里我們使用:not pseudo class,來定義所有input樣式,除了checkbox。我提供了一個:focus和:active狀態(tài),因為我們要刪除outline。
接 下來我們介紹icon字體部分。因為對于input來說我們沒有辦法添加:before和:class偽類,所以我們需要作弊一下:我們添加icon到 label,然后添加到input中。這里我們使用fontomas library的圖標(biāo)。 記得data-icon屬性吧?在這里我們使用data-icon='u'代表用戶,'e'代表電子郵件,'p'代表密碼。一旦選擇這些字母,我們下載字 體,并且使用fontsquirrel font generator來將他們生成@font-face兼容格式。
- @font-face {
- font-family: 'FontomasCustomRegular';
- src: url('fonts/fontomas-webfont.eot');
- src: url('fonts/fontomas-webfont.eot?#iefix') format('embedded-opentype'),
- url('fonts/fontomas-webfont.woff') format('woff'),
- url('fonts/fontomas-webfont.ttf') format('truetype'),
- url('fonts/fontomas-webfont.svg#FontomasCustomRegular') format('svg');
- font-weight: normal;
- font-style: normal;
- }
- /** the magic icon trick ! **/
- [data-icon]:after {
- content: attr(data-icon);
- font-family: 'FontomasCustomRegular';
- color: rgb(106, 159, 171);
- position: absolute;
- left: 10px;
- top: 35px;
- width: 30px;
- }
沒錯,你不需要為每一個圖標(biāo)設(shè)置class。我們使用content:attr(data-icon)來取得字母,因此我們只需要申明字體,選擇顏色并且定義位置。
接下來我們定義遞交按鈕:
- /*styling both submit buttons */
- #wrapper p.button input{
- width: 30%;
- cursor: pointer;
- background: rgb(61, 157, 179);
- padding: 8px 5px;
- font-family: 'BebasNeueRegular','Arial Narrow',Arial,sans-serif;
- color: #fff;
- font-size: 24px;
- border: 1px solid rgb(28, 108, 122);
- margin-bottom: 10px;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
- border-radius: 3px;
- box-shadow:
- 0px 1px 6px 4px rgba(0, 0, 0, 0.07) inset,
- 0px 0px 0px 3px rgb(254, 254, 254),
- 0px 5px 3px 3px rgb(210, 210, 210);
- transition: all 0.2s linear;
- }
- #wrapper p.button input:hover{
- background: rgb(74, 179, 198);
- }
- #wrapper p.button input:active,
- #wrapper p.button input:focus{
- background: rgb(40, 137, 154);
- position: relative;
- top: 1px;
- border: 1px solid rgb(12, 76, 87);
- box-shadow: 0px 1px 6px 4px rgba(0, 0, 0, 0.2) inset;
- }
- p.login.button,
- p.signin.button{
- text-align: right;
- margin: 5px 0;
- }
這里我們主要使用box-shadow來創(chuàng)建多余的border。你可以使用一個邊框,但是也可以創(chuàng)建更多。我們使用length數(shù)值來創(chuàng)建一個假的白色邊框,3px寬,沒有模糊。
開發(fā)完畢,希望大家喜歡這個教程,如果你想看到所有效果,使用Chrome來運(yùn)行在線演示吧,謝謝大家支持!
本文標(biāo)題:超酷HTML5和CSS3實現(xiàn)登錄及注冊功能表單
文章出自:http://www.dlmjj.cn/article/dhpchso.html


咨詢
建站咨詢
