CSS 作业——试卷篇


前言###

突然觉得能设计并完成前端开发的工程师真实太辛苦了。。。也许工作久了就没什么感觉了。但是我作为一个新人,完成了这么一次作业,就深深的为前端开发中的种种细节工作所赞叹。嗯,不多说了,先来说题。


任务目标###

使用CSS美化前面做的纯HTML页面,实现以下效果(仅供参考,不要求100%一样):


任务目标

作业分析###

尽管,题中说了不要求100%一样,但是我觉得,作为前端开发,就应该尽力去完成原型图上的设计目标,并且如果有改进,也应该是在完成的基础上去改进。因此,对于这次作业,我还是认真地思考了细节上的一些问题。
那么下来,简单地讲一下:

  1. 以边框为界,将整张试卷分为8块,最外层是一个body,其中套着7个div、一个大标题和一个按钮。
  2. 最上方两个信息相关的div的样式基本一致,可以考虑共用一个样式。
  3. 试题部分的div分两种,一种是大标题,另一种是小题。大标题部分要有灰背景,小题部分则要注意题干和选项的字体粗细。
  4. 注意所有边框都是圆角的,包括按钮的。

基本上要注意的就是这些,下面就可以写代码了。


我的HTML代码###

因为要植入样式,所以HTML代码和上次的作业比起来有些小改动:

<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<title>统一建模语言理论测试</title>
</head>
<body>
    <h1 id = "title">统一建模语言理论测试</h1>
    <form action="这里待定!!!需要一个URL." method="post">
        <div id = "testInfo" class="yj">
            <span class = "info">考试科目:统一建模语言</span>
            <span class = "info">时间:100分钟</span>
            <span class = "info">得分:</span>
        </div>
        <div id = "stdInfo" class="yj">
            <span class = "info">班级(必填):<input type = "text" /></span>
            <span class = "info">学号(必填):<input type = "text" /></span>
            <span class = "info">姓名(必填):<input type = "text" /></span>
        </div>
        
        <div id = "testTitle">
            <h3>一、填空题(每空五分,共20分)</h3>
        </div>
        <div id = "testContent">
            <ol>
                <li>UML的中文全称是:</li>
                <input type = "text" id = "UMLid" />
                
                <li>对象的突出特征是:</li>
                <span>
                    <input type = "text" id = "CharOfObj" />
                    <input type = "text" id = "CharOfObj" />
                    <input type = "text" id = "CharOfObj" />
                </span>
            </ol>
        </div>
        <div id = "testTitle">
            <h3>二、选择题(每题10分,共20分)</h3>
        </div>
        <div id = "testContent">
            <ol>
                <li>UML与软件工程的关系是:</li>
                    <div id="item">
                        <input type = "radio" name = "UMLAndSP" id="1A"/>
                        <label for = "1A">(A)UML就是软件工程</label>
                    </div>
                    <div id="item">
                        <input type = "radio" name = "UMLAndSP" id="1B"/>
                        <label for = "1B">(B)UML参与到软件工程中软件开发的几个阶段</label>
                    </div>
                    <div id="item">
                        <input type = "radio" name = "UMLAndSP" id="1C"/>
                        <label for = "1C">(C)UML与软件工程无关</label>
                    </div>
                    <div id="item">
                        <input type = "radio" name = "UMLAndSP" id="1D"/>
                        <label for = "1D">(D)UML是软件工程中的一部分</label>
                    </div>
                <li>Java语言支持:</li>
                    <div id="item">
                        <input type = "radio" name = "JavaSup" id="2A"/>
                        <label for = "2A">(A)单继承</label>
                    </div>
                    <div id="item">
                        <input type = "radio" name = "JavaSup" id="2B"/>
                        <label for = "2B">(B)多继承</label>
                    </div>
                    <div id="item">
                        <input type = "radio" name = "JavaSup" id="2C"/>
                        <label for = "2C">(C)单继承和多继承都支持</label>
                    </div>
                    <div id="item">
                        <input type = "radio" name = "JavaSup" id="2D"/>
                        <label for = "2D">(D)单继承和多继承都不支持</label>
                    </div>
            </ol>
        </div>
        <div id = "testTitle">
            <h3>三、多项选择题(每题10分,共20分)</h3>
        </div>
        <div id = "testContent">
            <ol>
                <li>用例的粒度分为以下哪三种:</li>
                <div id="item">
                    <input type = "checkbox" name = "userLev" id="M1A"/>
                    <label for = "M1A">(A)概述级</label>
                </div>
                <div id="item">
                    <input type = "checkbox" name = "userLev" id="M1B"/>
                    <label for = "M1B">(B)需求级</label>
                </div>
                <div id="item">
                    <input type = "checkbox" name = "userLev" id="M1C"/>
                    <label for = "M1C">(C)用户目标级</label>
                </div>
                <div id="item">
                    <input type = "checkbox" name = "userLev" id="M1D"/>
                    <label for = "M1D">(D)子功能级</label>
                </div>
                <li>类图由以下哪三部分组成:</li>
                <div id="item">
                    <input type = "checkbox" name = "classMap" id="M2A"/>
                    <label for = "M2A">(A)名称(id)</label>
                </div>
                <div id="item">
                    <input type = "checkbox" name = "classMap" id="M2B"/>
                    <label for = "M2B">(B)属性(Attribute)</label>
                </div>
                <div id="item">
                    <input type = "checkbox" name = "classMap" id="M2C"/>
                    <label for = "M2C">(C)操作(OPration)</label>
                </div>
                <div id="item">
                    <input type = "checkbox" name = "classMap" id="M2D"/>
                    <label for = "M2D">(D)方法(Function)</label>
                </div>
            </ol>
        </div>
        <div id = "testTitle">
            <h3>四、判断题(每题10分,共20分)</h3>
        </div>
        <div id = "testContent">
            <ol>
                <li>
                    <span>用例图只是用于和客户交流和共同的,用于确定需求。
                    <input name = "judge1" id ="J1T" type = "radio"><label class="yes" for = "J1T">√</label>
                    <input name = "judge1" id ="J1F" type = "radio"><label class="no" for = "J1F">×</label>
                    </span>
                </li>
                <li>
                    <span>在状态图中,终止状态在一个状态图中允许有任意多个。
                    <input name = "judge2" id ="J2T" type = "radio"><label class="yes" for = "J2T">√</label>
                    <input name = "judge2" id ="J2F" type = "radio"><label class="no" for = "J2F">×</label>
                    </span>
                </li>
            </ol>
        </div>
        <div id = "testTitle">
            <h3>五、简答题(每题10分,共20分)</h3>
        </div>
        <div id = "testContent">
            <ol>
                <li>
                    简述什么是模型以及模型的表现形式?
                </li>
                <textarea id = "answerArea"></textarea>
            </ol>
        </div>
        <input id ="button" type = "submit" value = "计算分数"/>
    </form>
</body>
</html>

下面是CSS代码:

/*body加边框,边距采用自适应*/
body{
    margin:auto;
    border:4px solid DeepPink;
}

/*大标题样式居中就好*/
#title{
    text-align:center;
}

/*将所有div的共同样式提取出来*/
div{
    border: thin solid #CCCCCC;
    margin-left:5%;
    margin-bottom: 1%;
    margin-right:5%;           
}

/*圆角并不是每个div都需要的样式,所以单独写出来*/
.yj{
    border-radius:5px;
}

/*信息部分的样式可以公用,所以提取出来*/
.info{
    display:inline-block;
    margin-left:1%;
    line-height:50px;
    width:30%;
    font-weight: bold;
}

/*大题题干的div需要个性化,它的圆角只有上方的两个*/
#testTitle{
    line-height:25px;
    background-color: #E8E8E8;
    margin-bottom: 0px;
    border-top-right-radius:5px;
    border-top-left-radius:5px;
}

/*大题的题目需要调整左边距*/
#testTitle h3{
    margin-left:1%;
}

/*小题部分的边框需要有下边的两个圆角*/
#testContent{
    border:thin solid #CCCCCC;
    border-bottom-right-radius:5px;
    border-bottom-left-radius:5px;
}

/*小题的题干的字体需要加粗,同时其边距需要调整*/
#testContent li{
    margin-left:1%;
    margin-bottom: 1%;
    margin-top: 1%;
    font-weight: bold;
}

/*选项的边距需要调整*/
#item{
    margin-left:1%;
    border:0px;
    margin-bottom: 0px;
}

/*文本域的大小、边距需要调整,同时需要加上圆角*/
#answerArea{
    height:25%;
    width:95%;
    margin-bottom:2%;
    border-radius:5px;
    border:thin solid #CCCCCC;
}

/*判断题选项的对错样式设置*/
.yes{
    color:Green;
    font-weight:bold;   
}
.no{
    color:Red;  
    font-weight:bold;  
}

/*调整位置*/
label{
    line-height:30px;
}

/*按钮位置、大小、背景色、圆角设置*/
#button{
    width:6%;
    height:5%;
    background-color: #31b0d5;
    border:thin solid #286090;
    border-radius:5px;
    color:#fff;
    margin-left:44%;
}

/*输入框的大小位置调整,同时加上圆角*/
input[type=text]{
    width:150px;
    height:4%;
    border-radius:5px;
    border:thin solid #CCCCCC;
}

注意:CSS代码中多处采用了百分比的配置距离、位置的方法。其目的是为了在不同大小的显视屏上显示不会错位。
最终效果如下:



最终效果

遗留问题###

对于单选框和复选框的样式没有和目标达成一致,这个目前还真是不知道该怎么修改。。。之后在学习学习相关资料看看吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,728评论 1 92
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    程序员poetry阅读 16,513评论 32 459
  • 我就想 若是以后你也想我为你这般 为另一个人辗转反侧夜不成眠念念不忘揪心挂肺 我才不会觉得这是一种快意补偿 这明明...
    芮小芮阅读 234评论 0 1
  • 我是一位全职妈妈,业余时间做为正面管教讲师带领家长课堂。当下的生活状态,我很知足。因为孩子,让我拥有再次成长的机会...
    hiwanda阅读 290评论 2 1
  • 绝对浪漫 或许也有那么一段爱情, 早上一睁眼晚上一闭眼 眼中全是你的焦距。 奔跑 只要你的心跳盖过世界的喧嚣, 就...
    幻梦邪魂阅读 239评论 0 0