【css】星巴克交互设计

一、业务网站展示

在这里插入图片描述

二、设计思路

交互性:简洁明了的展示商品页面,亮点在于:滑动切换商品,变换图片底部颜色,实现视觉冲击。

三、html规范

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Starbucks Website Landing Page</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    <section>    
        <div class="circle"></div>                   
        <header>
            <a href="#" class="logo"><img src="../very_cool_css-master//素材/星巴克/logo.png"></a>
            <ul>
                <li><a href="#">Home</a></li>
                <li><a href="#">Menu</a></li>
                <li><a href="#">what's New</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
        </header>
        <div class="content">
            <div class="textBox">
                <h2>It's not just Coffee<br>It's <span>Starbucks</span></h2>
                <P>Lorem ipsum dolor sit amet consectetur adipisicing elit.Deserunt laboriosam molestias maiores ipsam eius. Accusantium debitis, esse, delectus voluptate nam atque cum distinctio a minima veritatis non facere et? Ullam.</P>
                <a href="#">Learn More</a>
            </div>
            <div class="imgBox">
                <img class="starbucksGreen" src="../very_cool_css-master/素材/星巴克/img1.png">
            </div>
        </div>
        <ul class="thumb">
            <li><img src="../very_cool_css-master/素材/星巴克/thumb1.png" Onmouseover="imgSilder('../very_cool_css-master/素材/星巴克/img1.png');changeCircleColor('#017143')"></li>
            <li><img src="../very_cool_css-master/素材/星巴克/thumb2.png" Onmouseover="imgSilder('../very_cool_css-master/素材/星巴克/img2.png');changeCircleColor('#eb7495')"></li>
            <li><img src="../very_cool_css-master/素材/星巴克/thumb3.png" Onmouseover="imgSilder('../very_cool_css-master/素材/星巴克/img3.png');changeCircleColor('#d752b1')"></li>
        </ul>
        <ul class="sci">
            <li><a href=""><img src="../very_cool_css-master/素材/星巴克/facebook.png"></a></li>
            <li><a href=""><img src="../very_cool_css-master/素材/星巴克/instagram.png" alt=""></a></li>
            <li><a href=""><img src="../very_cool_css-master/素材/星巴克/twitter.png" alt=""></a></li>
        </ul>
        <script>
            function imgSilder(anything){
    
    
                document.querySelector('.starbucksGreen').src = anything
            }
            function changeCircleColor(color){
    
    
                const circle = document.querySelector(".circle");
                circle.style.background = color
            }
        </script>
    </section>
</body>
</html>

三、CSS要点

1.规范通用符

在这里插入图片描述

box-sizing:border-box即使使用padding也不会撑开原有盒子,但是content-box可能会撑开原有盒子
在这里插入图片描述

2 section使用flex布局

在这里插入图片描述

详解css3 flex布局
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
min-height
CSS 属性 min-height 能够设置元素的最小高度。这样能够防止 height 属性的应用值小于 min-height 的值。

3.header栏目

header可以利用标签

绝对定位与相对定位
绝对定位:绝对定位的元素的位置相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块。
相对定位:相对于自己的定位

4.侧边栏

flex-direction
flex-direction:row 容器的主轴被定义为与文本方向相同;如果是横状,则方向不改变
flex-direction:column flex 容器的主轴和块轴相同。主轴起点与主轴终点和书写模式的前后点相同; 如果是横状则改变方向为竖状。
在这里插入图片描述 在这里插入图片描述
5.总体代码

*{
    
    
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Poppins',sans-serif;
}
section{
    
    
    position: relative;
    width: 100%;
    min-height: 100vh;
    padding: 100px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #fff;
}
header{
    
    
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: 20px 100px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
header .logo{
    
    
    position: relative;
    max-width: 80px
}
header ul{
    
    
    position: relative;
    display: flex;
}
header ul li{
    
    
    list-style: none;
}
header ul li a{
    
    
    display: inline-block;
    color: #333;
    font-weight: 400;
    margin-left: 40px;
    text-decoration: none;
}
.content{
    
    
    position: relative;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.content .textBox{
    
    
    position: relative;
    max-width: 600px;
}
.content .textBox h2{
    
    
    color: #333;
    font-size: 4em;
    line-height: 1.4em;
    font-weight: 500;
}
.content .textBox h2 span{
    
    
    color: #017143;
    font-size: 1.2em;
    font-weight: 900;
}
.content .textBox p{
    
    
    color: #333;
    font-family: sans-serif;
    font-weight: 450;

}
.content .textBox a{
    
    
    /* 先设置为行内样式再方便去调节margin值 */
    display: inline-block;
    margin-top: 20px;
    padding:8px 20px;
    background: #017143;
    color: #fff;
    border-radius: 40px;
    font-weight: 400;
    /* CSS 的 letter-spacing 属性用于设置文本字符的间距表现 */
    letter-spacing: 1px;
    text-decoration: none;

}
.content .imgBox{
    
    
    width: 600px;
    display: flex;
    justify-content: flex-end;
    padding-right: 50px;
    margin-top: 50px;
}
.content .imgBox img{
    
    
    max-width: 340px;
}
.thumb{
    
    
    position:absolute;
    display: flex;
    left:50%;
    bottom: 20px;
   transform: translateX(-50%);
   transition: 0.5s;
}
.thumb li{
    
    
    list-style: none;
    display:inline-block;
    margin: 0 20px;
    /* cursor : 网页浏览时用户鼠标指针的样式或图形形状。pointer是一只手 */
    cursor: pointer;
}
.thumb li:hover{
    
    
    transform: translateY(-15px);
}
.thumb li img{
    
    
    max-width: 60px;
}
.sci{
    
    
    position: absolute;
    top:50%;
    right:30px;
    display: flex;
    justify-content: center;
    align-items: center;
    /* 横向变竖向 */
    flex-direction:column
}

.sci li{
    
    
    list-style: none;
}
.sci li a{
    
    
    display: inline-block;
    margin: 5px 0;
    /*我们可以使用transform属性的scale()方法来实现元素的缩放效果。scale沿x轴和y轴方向缩放  */
    transform: scale(0.6);
    /* CSS属性 filter 将模糊或颜色偏移等图形效果应用于元素 */
    /*invert使倒转  */
    filter: invert(1);
}
.circle{
    
    
    position: absolute;
    top: 0;
    right: 0;
    width:100%;
    height: 100%;
    background: #017143;
    clip-path:circle(660px at right 800px)
}

四、js交互设计

鼠标滑动事件

οnmοuseοver=“imgSilder(‘.img1.png’);changeCircleColor(‘#017143’)”
利用事件驱动函数onmouseover完成图片与底部颜色切换
封装函数如下

function imgSlider(anything){
    
    
	document.querySelector('.starbucksGreen').src = anything
}
function changeCircleColor(color){
    
    
	const circle = document.querySelector('.circle')
	circle.style.background = color
}

猜你喜欢

转载自blog.csdn.net/weixin_51612770/article/details/128576860