会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133466个问题
Python 全系列/第一阶段:Python入门/控制语句 722楼

为什么我这个搜索框设置了float: right,还是在下面呢

压缩的文件zip格式说不允许上传到这里


<!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>小米</title>

    <link rel="stylesheet" href="./css/reset.css">

    <link rel="stylesheet" href="./css/mi.css">

    <link rel="stylesheet" href="./css/iconfont/iconfont.css">

</head>

<body>

    <!-- 头部开始 -->

    <div class="header">

        <a href="#">

            <img src="./images/top.jpg" alt="顶端广告">

        </a>

    </div>

    <!-- 头部结束 -->

    <!-- 黑色导航开始 -->

    <div class="black-nav">

        <!-- wrap包裹了导航栏的左右两部分,使其居中显示 -->

        <div class="wrap">

            <ul class="black-nav-left">

                <li><a href="#">小米商城</a><span>|</span></li>

                <li><a href="#">MIUI</a><span>|</span></li>

                <li><a href="#">IoT</a><span>|</span></li>

                <li><a href="#">云服务</a><span>|</span></li>

                <li><a href="#">天星数科</a><span>|</span></li>

                <li><a href="#">有品</a><span>|</span></li>

                <li><a href="#">小爱开放平台</a><span>|</span></li>

                <li><a href="#">企业团购</a><span>|</span></li>

                <li><a href="#">资质证照</a><span>|</span></li>

                <li><a href="#">协议规则</a><span>|</span></li>

                <li>

                    <a href="#">下载APP</a><span>|</span>

                    <!-- 二维码框上的三角形箭头,特殊图形绘制 -->

                    <div class="stri"></div>

                    <!-- 下载APP文字下方展开二维码和文字 -->

                    <div class="download">

                        <img src="./images/download.png" alt="下载二维码">

                        <p>小米商城APP</p>

                    </div>

                </li>

                <li><a href="#">智能生活</a><span>|</span></li>

                <li><a href="#">SelectLocation</a><span>|</span></li>

            </ul>

            <ul class="black-nav-right">

                <li><a href="#">登录</a><span>|</span></li>

                <li><a href="#">注册</a><span>|</span></li>

                <li><a href="#">消息通知</a><span>|</span></li>

                <li class="cart">

                    <a href="#">

                        <i class="iconfont">&#xe607;</i>

                        <i>购物车(0)</i>

                    </a>

                    <!-- 购物车图标下方展开 -->

                    <div class="cart-list">

                        购物车中还没有商品

                    </div>

                </li>

            </ul>

        </div>

    </div>

    <!-- 黑色导航结束 -->

    <!-- 白色导航开始 -->

    <div class="white-nav">

        <div class="wrap">

            <div class="logo">

                <img src="./images/mi-home.png" alt="" class="mi-home">

                <img src="./images/mi-logo.png" alt="" class="mi-logo">

            </div>

            <div class="nav-bar">

                <ul>

                    <li><a href="#"><img src="./images/zzxsh.gif" alt=""></a></li>

                    <li><a href="#">小米手机</a></li>

                    <li><a href="#">Redmi红米</a></li>

                    <li><a href="#">电视</a></li>

                    <li><a href="#">笔记本</a></li>

                    <li><a href="#">家电</a></li>

                    <li><a href="#">路由器</a></li>

                    <li><a href="#">智能硬件</a></li>

                    <li><a href="#">服务</a></li>

                    <li><a href="#">社区</a></li>

                </ul>

            </div>

            <div class="search">

                <input type="text" placeholder="现实生活">

                <button class="iconfont">&#xe63d;</button>

            </div>

        </div>

    </div>

    <!-- 白色导航结束 -->

</body>

</html>

---------------------------------------------------------------------------------------


.header {

    width: 100%;

    height: 120px;

    overflow: hidden;

    position: relative;

}


.header img {

    height: 120px;

    /* 图片,以中间开始渲染 */

    position: absolute;

    left: 50%;

    transform: translateX(-50%);

}


/* 黑色导航栏样式开始 */

.black-nav {

    width: 100%;

    height: 40px;

    line-height: 40px;

    background-color: #333;

    font-size: 12px;

}


.wrap {

    width: 1224px;

    margin: 0 auto;

}


.black-nav-left {

    /* 左侧导航向左浮动 */

    float: left;

}


.black-nav-right {

    /* 右侧导航向右浮动 */

    float: right;

}


.black-nav li {

    float: left;

    position: relative;

}


.black-nav a {

    color: #b0b0b0;

}


.black-nav span {

    color: #424242;

    margin: 0 3.6px;

}


.download {

    width: 124px;

    /* 最开始是0,让它之后再显示 */

    height: 0;

    overflow: hidden;

    background-color: #fff;

    /* 阴影效果 */

    box-shadow: 0 1px 5px #aaa;

    /* 使用定位让download这个div不把这个li在导航栏中撑开占用额外位子 */

    position: absolute;

    top: 40px;

    left: 50%;

    margin-left: -62px;

    /* 用过渡做出现的动画效果 */

    transition: all 0.3s;

}

.download img {

    width: 90px;

    margin: 18px auto 0;

}


.download p {

    color: #333;

    font-size: 14px;

    line-height: 14px;

}


/* 伪类,表状态, */

.black-nav-left li:hover>.download {

    height: 148px;

}


.stri {

    /* 绘制三角形 */

    width: 0;

    height: 0;

    border-bottom: 8px solid #fff;

    border-left: 8px solid transparent;

    border-right: 8px solid transparent;

    /* 调整三角形的位置 */

    position: absolute;

    bottom: 0;

    /* 大调整,大概居中 */

    left: 50%;

    /* 小调整 */

    margin-left: -8px;

    /* 默认不显示 */

    display: none;

}


.black-nav-left li:hover>.stri {

    display: block;

}


.cart {

    width: 120px;

    height: 40px;

    background-color: #424242;

    margin-left: 25px;

    position: relative;



}


.cart:hover {

    background-color: white;

}


.cart:hover>a {

    color: orange;

}


.cart i {

    /* 使i标签里面的斜体字变成正常的 */

    font-style: normal;

    margin-right: 8px;

}


.cart-list {

    width: 316px;

    height: 0;

    overflow: hidden;

    background-color: #fff;

    box-shadow: 0 2px 10px rgba(0,0,0,0.15);

    position: absolute;

    /* 靠右 */

    right: 0;

    /* 行高是40px所以top(向下)40px */

    top: 40px;

    color: #424242;

    transition: all 0.3s;

    /* 和下面出现后设置的height对应,使文本上下居中 */

    line-height: 100px;

}


.cart:hover .cart-list {

    height: 100px;

}

/* 黑色导航栏样式结束 */


/* 白色导航栏样式开始 */

.white-nav {

    width: 100%;

    height: 100px;

    background-color: #fff;

    position: relative;

}


.logo {

    width: 55px;

    height: 55px;

    background-color: #ff6700;

    float: left;

    /* 下移 */

    margin-top: 22.5px;

    overflow: hidden;

    /* 让两个图片相对于logo这个div定位 */

    position: relative;

}


.logo img {

    width: 100%;

    height: 100%;

    position: absolute;

    top: 0;

    /* 用过渡配合伪类为元素不同状态做动画切换效果 */

    transition: all 0.2s;

}


.mi-logo {

    left: 0;

}


.mi-home {

    left: -55px;

}


.logo:hover .mi-logo {

    left: 55px;

}


.logo:hover .mi-home {

    left: 0;

}


.nav-bar {

    width: 875px;

    height: 100px;

    line-height: 100px;

    /* 此处只是让ul向左浮动,还需要让ul里的li在ul中向左浮动 */

    float: left;

}


.search {

    width: 296px;

    height: 100px;

    float: right;

}


.nav-bar li {

    float: left;

}


.nav-bar>ul>li>a {

    color: #333;

    padding: 0 10px;

}

.nav-bar>ul>li>a:hover {

    color: #ff6700;

}


.nav-bar>ul>li:first-child img{

    margin-top: 22.5px;

}


.search input {

    width: 244px;

    height: 50px;

    border: 1px solid #e0e0e0;

    /* 去掉右侧边框 */

    border-right: 0;

    margin-top: 25px;

    /* 去掉输入框聚焦(选中)时的边框变实效果 */

    outline: none;

    /* 怪异盒模型,不让输入框撑大 */

    padding: 0 10px;

    box-sizing: border-box;

}


.search button {

    width: 52px;

    /* 高度和input输入框一样 */

    height: 50px;

    background-color: #fff;

    border: 1px solid #e0e0e0;

    float: right;

    margin-top: 25px;

}


.search button:hover {

    background-color: #ff6700;

    color: #fff;

}

/* 白色导航栏样式结束 */




WEB前端全系列/第一阶段:HTML5+CSS3模块/商城官网项目 724楼
Python 全系列/第七阶段:网页编程基础/小米官网项目 726楼
JAVA 全系列/第六阶段:JavaWeb开发/Servlet技术详解(旧) 727楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/MySQL数据库 729楼

一:麻烦老师帮忙看看左键控制飞机的代码,问题飞机不受控制自动往右边移动,我按左移动键只会出现对应的数字,控制不了飞机:代码如下

package com.ss.plane;

import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
 * 游戏主窗口
 * */
public class MyGameFrame extends Frame {

    Image planeImg=GameUtil.getImage("images/plane.png");
    Image bg=GameUtil.getImage("images/bg.jpg");

    Plane p1 = new Plane(planeImg,100,100,7);
    boolean left,right,up,down;//飞机飞向控制


    @Override
    public void paint(Graphics g) {//g当作是画笔
        g.drawImage(bg,0,0,500,500,null);//画背景大小和窗口一样大
        p1.drawMyself(g);
        if(left){
            p1.x -= p1.speed;
        }

    }

    //初始化窗口
    public void launchFrame(){
        this.setTitle("飞机大战-ss");
        setVisible(true);//窗口默认不可见,设置可见
        setSize(500,500);//窗口大小
        setLocation(400,200);//窗口打开的位置
        //增加关闭窗口的动作
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(0);//正常关闭
            }
        });
        new PaintThred().start();//启动重画窗口的线程
        this.addKeyListener(new KeyMonitor());


    }
    /**定义重画窗口的线程;
     *定义内部类方便使用窗口类相关方法
     */
    class PaintThred extends Thread{
        @Override
        public void run() {
            while(true){
                repaint();//内部类可以直接使用外部类的成员
                try {
                    Thread.sleep(50);//1s=1000ms,1s画20次
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    //新建内部类,实现键盘的监听处理
    class KeyMonitor extends KeyAdapter{

        @Override
        public void keyPressed(KeyEvent e) {
            System.out.println("按下:"+e.getKeyCode());//获取按键代码(每个键盘按键对应一个数字)
            if(e.getKeyCode()== KeyEvent.VK_LEFT){
            left = true;
            }
        }

        @Override
        public void keyReleased(KeyEvent e) {
            System.out.println("抬起:"+e.getKeyCode());//
            if(e.getKeyCode()==KeyEvent.VK_LEFT){
            left = false;
            }
        }
    }
    //双缓冲,在内存中创建一个于绘图区一致的对象,现将图形绘制到这来,在一次性拷贝到屏幕上,加大绘图速度
    private Image offScreenImage = null;

    public void update(Graphics g) {
        if(offScreenImage == null)
            offScreenImage = this.createImage(Constant.GAME_WIDTH,Constant.GAME_HEIGHT);//这是游戏窗口的宽度和高度

        Graphics gOff = offScreenImage.getGraphics();
        paint(gOff);
        g.drawImage(offScreenImage, 0, 0, null);
    }

    public static void main(String[] args) {
        MyGameFrame gamenFrame = new MyGameFrame();
        gamenFrame.launchFrame();
    }
}


JAVA 全系列/第一阶段:AI驱动的JAVA编程/飞机大战小项目训练 730楼
Python 全系列/第一阶段:Python入门/Python入门(动画版) 731楼
Python 全系列/第三阶段:Python 网络与并发编程/网络通信 732楼

老师,本节有两个疑问,请指教,

1.关于跨域问题,按照视频中添配置文件,虽然可以解决跨域拒绝访问的问题,但是之前的登录页面不能刷新,刷新就不存在了

图片.png

我在后台看了下,意思就是现在会把所有以前 8080端口的访问(http://localhost:8080/login 这是之前前端服务器的登录地址),转换成5000的端口(http://localhost:5000/login)提交到后端服务器。所以前端登录页面不复存在(因为前端服务器收不到所有8080端口的访问了),应该如何解决。

2.关于cookie,session 和token的问题,我记得以前讲的时候,客户端(浏览器)会自动保存由服务器端生成并反馈回来的(cookie,session,token)值,但为什么视频中还要显式的写个方法保存token值?








Python 全系列/第九阶段:Flask百战电商后台系统/Flask百战电商后台项目 733楼
Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 735楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637