2

ここに画像の説明を入力

上のコーナーを画像のようにやっているとCSSに苦労しますが、

頑張ってこれを手に入れました しかし、CSSで完璧なコーナーを取得することはできません.

ここに画像の説明を入力

緑色の大きな三角形を作成してから、白い色の小さな三角形を作成して、その外観を実現しようとしています。

HTMLコード:

    <div id="loginmain">
<div id="login" class="login_hover">

</div>
<div id="login-content" class="triangle-border top" style="">
    <form onsubmit="loginAjax(); return false;" method="POST" _lpchecked="1">
        <div><lable>Username</lable><input name="username" id="username" type="text"></div>
        <div><lable>Password</lable><input name="password" id="password" type="password"></div>
        <a class="sign-up left clear">Sign Up</a>
        <a class="forgot">Forgot Password?</a>
        <input name="login" type="submit" value="Sign In">
    </form>

</div>
</div>

CSS コード :

#login {
    position:absolute;
    top:10px;
    right:10px;
    width:53px;
    height:47px;
    background: url(../imgs/icons/user_border.png); 
    background-size:contain;
    cursor: pointer;
}
#login:hover , .login_hover {
    background: url(../imgs/icons/user.png) !important;
    z-index:9999;
}


.triangle-border {
    position:relative;
    padding:8px;
    margin:1em 0 3em;
    border:3px solid #00B100;
    color:#333;
    background:#fff;
    /* css3 */
    -webkit-border-radius:10px;
    -moz-border-radius:10px;
    border-radius:10px;
}

/* Variant : for left positioned triangle
------------------------------------------ */

.triangle-border.left {
    margin-left:30px;
}

/* Variant : for right positioned triangle
------------------------------------------ */

.triangle-border.right {
    margin-right:30px;
}

/* THE TRIANGLE
------------------------------------------------------------------------------------------------------------------------------- */

.triangle-border:before {
    content:"";
    position:absolute;
    bottom:-20px; /* value = - border-top-width - border-bottom-width */
    left:40px; /* controls horizontal position */
    border-width:20px 20px 0;
    border-style:solid;
    border-color:#00B100 transparent transparent #00B100 ;
    /* reduce the damage in FF3.0 */
    display:block; 
    width:0;
}

/* creates the smaller  triangle */
.triangle-border:after {
    content:"";
    position:absolute;
    bottom:-13px; /* value = - border-top-width - border-bottom-width */
    left:47px; /* value = (:before left) + (:before border-left) - (:after border-left) */
    border-width:13px 13px 0;
    border-style:solid;
     border-color:#00B100 transparent transparent #00B100 ;
    /* reduce the damage in FF3.0 */
    display:block; 
    width:0;
}

/* Variant : top
------------------------------------------ */

/* creates the larger triangle */
.triangle-border.top:before {
    top:-20px; /* value = - border-top-width - border-bottom-width */
    bottom:auto;
    left:auto;
    right:10px; /* controls horizontal position */
    border-width:0 15px 20px;
}

/* creates the smaller  triangle */
.triangle-border.top:after {
    top:-15px; /* value = - border-top-width - border-bottom-width */
    bottom:auto;
    left:auto;
    right:10px; /* value = (:before right) + (:before border-right) - (:after border-right) */
    border-width:0 15px 20px;
}

/* Variant : left
------------------------------------------ */

/* creates the larger triangle */
.triangle-border.left:before {
    top:10px; /* controls vertical position */
    bottom:auto;
    left:-30px; /* value = - border-left-width - border-right-width */
    border-width:15px 30px 15px 0;
    border-color:transparent #5a8f00;
}

/* creates the smaller  triangle */
.triangle-border.left:after {
    top:16px; /* value = (:before top) + (:before border-top) - (:after border-top) */
    bottom:auto;
    left:-21px; /* value = - border-left-width - border-right-width */
    border-width:9px 21px 9px 0;
    border-color:transparent #fff;
}

/* Variant : right
------------------------------------------ */

/* creates the larger triangle */
.triangle-border.right:before {
    top:10px; /* controls vertical position */
    bottom:auto;
    left:auto;
    right:-30px; /* value = - border-left-width - border-right-width */
    border-width:15px 0 15px 30px;
    border-color:transparent #5a8f00;
}

/* creates the smaller  triangle */
.triangle-border.right:after {
    top:16px; /* value = (:before top) + (:before border-top) - (:after border-top) */
    bottom:auto;
    left:auto;
    right:-21px; /* value = - border-left-width - border-right-width */
    border-width:9px 0 9px 21px;
    border-color:transparent #fff;
}

#login-content {
position: absolute;
top: 60px;
right:10px;
width: 290px;
color: #848484;
z-index: 9;
padding: 13px;
}

#login-content a { width: 100%; display: block; }
#login-content lable {
    padding-right:10px;
    width: 30%;
    display: inline-block;
}
#login-content div {
    margin-top: 10px;
}
#login-content input[type=text] ,#login-content input[type=password] {
   width: 58%;
   height: 25px;
   border: 1px solid #A6A6A6;
   font-size:12px;
   }
#login-content input[type=text]:focus ,#login-content input[type=password]:focus {  
  border: 1px solid rgba(4, 213, 4, 1);
 }
 #login-content a.forgot {
        float:right;
        font-size:12px;
        cursor: pointer;
        margin-top: 5px;
        color:#848484;
 }  
 #login-content .sign-up{
    position: absolute;
    bottom: 15px;
    font-weight: normal;
    display: none;
 }
#login-content input[type=submit] {
    clear: both;
    margin-top: 10px;
    float: right;
    cursor: pointer;
    font-size: 15px;
    padding:5px 10px;
} 

同じ解決策を提案してください。

4

2 に答える 2

0

このように、これが完璧な方法ではないことはわかっていますが、あなたの答えは完璧です。これが好きなら、これを使ってください。あなたは絶対に解決したいので、これを試してください。

デモ

CSS

#login {
    background: url("../imgs/icons/user_border.png") repeat scroll 0 0 / contain transparent;
    border: 1px solid red;
    cursor: pointer;
    height: 47px;
    position: absolute;
    right: -59px;
    text-align: right;
    top: 18px;
    width: 53px;
}
#login:hover , .login_hover {
    background: url(../imgs/icons/user.png) !important;
    z-index:9999;

}
.arrow {
    background-image: url("http://satyamsteelvadodara.com/img/green-arrow.png");
    background-repeat: no-repeat;
    height: 15px;
    margin: 64px 0 0 42px;
    position: absolute;
    right: 0;
    width: 21px;
    z-index: 100;
}


.triangle-border {
    position:relative;
    padding:8px;
    margin:1em 0 3em;
    border:2px solid #44C544;
    color:#333;
    background:#fff;
    /* css3 */
    -webkit-border-radius:10px;
    -moz-border-radius:10px;
    border-radius:10px;
}

/* Variant : for left positioned triangle
------------------------------------------ */

.triangle-border.left {
    margin-left:30px;
}

/* Variant : for right positioned triangle
------------------------------------------ */

.triangle-border.right {
    margin-right:30px;
}

/* THE TRIANGLE
------------------------------------------------------------------------------------------------------------------------------- */
.triangle-border:before{
  /*  width: 0; 
    height: 0; 
    border-top: 0 solid transparent;
    border-bottom: 0 solid transparent;

    border-left: 60px solid white;*/
    background-image:url(http://satyamsteelvadodara.com/img/green-arrow.png);




}
.triangle-border1:before {
    content:"";
    position:absolute;
    bottom:-20px; /* value = - border-top-width - border-bottom-width */
    left:40px; /* controls horizontal position */
    border-width:20px 20px 0;
    border-style:solid;
    border-color:#00B100 transparent transparent #00B100 ;
    /* reduce the damage in FF3.0 */
    display:block; 
    width:0;
}

/* creates the smaller  triangle */
.triangle-border:after {
   /* content:"";
    position:absolute;
    bottom:-13px; /* value = - border-top-width - border-bottom-width */
    /*left:47px; /* value = (:before left) + (:before border-left) - (:after border-left) */
    border-width:13px 13px 0;
    border-style:solid;
     border-color:#00B100 transparent transparent #00B100 ;
    /* reduce the damage in FF3.0 */
    display:block; 
    width:0;
}

/* Variant : top
------------------------------------------ */

/* creates the larger triangle */
.triangle-border.top:before {
    top:-20px; /* value = - border-top-width - border-bottom-width */
    bottom:auto;
    left:auto;
    right:10px; /* controls horizontal position */
    border-width:0 15px 20px;
}

/* creates the smaller  triangle */
.triangle-border.top:after {
    top:-15px; /* value = - border-top-width - border-bottom-width */
    bottom:auto;
    left:auto;
    right:10px; /* value = (:before right) + (:before border-right) - (:after border-right) */
    border-width:0 15px 20px;
}

/* Variant : left
------------------------------------------ */

/* creates the larger triangle */
.triangle-border.left:before {
    top:10px; /* controls vertical position */
    bottom:auto;
    left:-30px; /* value = - border-left-width - border-right-width */
    border-width:15px 30px 15px 0;
    border-color:transparent #5a8f00;
}

/* creates the smaller  triangle */
.triangle-border.left:after {
    top:16px; /* value = (:before top) + (:before border-top) - (:after border-top) */
    bottom:auto;
    left:-21px; /* value = - border-left-width - border-right-width */
    border-width:9px 21px 9px 0;
    border-color:transparent #fff;
}

/* Variant : right
------------------------------------------ */

/* creates the larger triangle */
.triangle-border.right:before {
    top:10px; /* controls vertical position */
    bottom:auto;
    left:auto;
    right:-30px; /* value = - border-left-width - border-right-width */
    border-width:15px 0 15px 30px;
    border-color:transparent #5a8f00;
}

/* creates the smaller  triangle */
.triangle-border.right:after {
    top:16px; /* value = (:before top) + (:before border-top) - (:after border-top) */
    bottom:auto;
    left:auto;
    right:-21px; /* value = - border-left-width - border-right-width */
    border-width:9px 0 9px 21px;
    border-color:transparent #fff;
}

#login-content {
position: absolute;
top: 60px;
right:10px;
width: 290px;
color: #848484;
z-index: 9;
padding: 13px;
}

#login-content a { width: 100%; display: block; }
#login-content lable {
    padding-right:10px;
    width: 30%;
    display: inline-block;
}
#login-content div {
    margin-top: 10px;
}
#login-content input[type=text] ,#login-content input[type=password] {
   width: 58%;
   height: 25px;
   border: 1px solid #A6A6A6;
   font-size:12px;
   }
#login-content input[type=text]:focus ,#login-content input[type=password]:focus {  
  border: 1px solid rgba(4, 213, 4, 1);
 }
 #login-content a.forgot {
        float:right;
        font-size:12px;
        cursor: pointer;
        margin-top: 5px;
        color:#848484;
 }  
 #login-content .sign-up{
    position: absolute;
    bottom: 15px;
    font-weight: normal;
    display: none;
 }
#login-content input[type=submit] {
    clear: both;
    margin-top: 10px;
    float: right;
    cursor: pointer;
    font-size: 15px;
    padding:5px 10px;
} 

HTML

    <div id="loginmain">
<div id="login" class="login_hover">

</div>
           <div class="arrow"></div>
<div id="login-content" class="triangle-border top" style="">
    <form onsubmit="loginAjax(); return false;" method="POST" _lpchecked="1">
        <div><lable>Username</lable><input name="username" id="username" type="text"></div>
        <div><lable>Password</lable><input name="password" id="password" type="password"></div>
        <a class="sign-up left clear">Sign Up</a>
        <a class="forgot">Forgot Password?</a>
        <input name="login" type="submit" value="Sign In">
    </form>

</div>
</div>
于 2013-09-13T07:43:05.620 に答える
-2

実際の三角形をコーディングするよりも、IMG を使用したいと思います。

于 2013-09-13T07:12:01.657 に答える