1. 程式人生 > >巨簡單巨醜的計算器(寫的我快自閉了)

巨簡單巨醜的計算器(寫的我快自閉了)

如何 res 點擊事件 樣式 body osi absolute shadow styles

學習前端已有兩月有余,去掉寒假劃水也學了一個多月了,

還是弱的可以。寫個計算器遇到了一堆問題,我真是個弟弟...

把問題和解決方法都塞在註釋裏了,小林要常回來看看

css樣式我真的8想寫了,就先這樣醜醜的放著吧

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Page Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" media="screen" href="main.css">
    <style>
        *{
            padding: 
0; margin: 0; } html,body{ height: 100%; width: 100%; } #container{ margin: 0 auto; /* position: absolute; */ /* puzzle1:絕對定位與外邊距? */ height: 40%; width: 35%;
/* puzzle2:如何使用百分比? 成了!給html與body均設置寬高100%*/ border: 2px solid aqua; background-color: antiquewhite; } input{ /* margin-top: 5%; */ display: inline-block; /* margin:0 auto; */ /* margin:auto可以做到水平居中,但是有個前提條件就是,這個 標簽必須是塊狀元素,並且有個確定的寬度,百分比的寬度也行;
*/ margin-top: 3%; margin-left: 1.5%; /* 百分比是相對於寬度的 */ height: 13%; width: 80%; /* 其實這裏用px比較好,因為如果縮放網頁到一定程度輸入框就消失了 還是要去橙旭園咨詢下 */ } /*input:focus{ box-shadow: 1px 1px ; }自帶focus??*/ #clear{ display: inline-block; /* display是不繼承的 */ background-color: aquamarine; /* position: absolute;再做一些修改就可以無論怎麽樣縮放網頁,清除按鈕都和輸入框在同一行上 */ padding: 2px; border: 1px solid #dddddd; height: 14%; margin-left: 1px; margin-top: 3%; width: 15%; font-size: 18px; margin-bottom: 3%; } #clear:hover{ border: 1px solid seagreen; box-shadow: 1px 1px sandybrown; /* 註意有兩個必須有的值 */ } #btn{ background-color:turquoise; padding-left: 5%; /* ???為什麽會導致btn這個div向右膨脹5%??? */ /* width: 100%; */ /* 為什麽把寬度註釋掉就可以了欸 */ /* 如果設置了100%,再加上邊距,就會變成105%的寬度~ */ /* html元素寬度不具有繼承特性,塊級元素(block)的寬度會占據一整行(一整行父元素的寬度), 所以看似繼承了,實則不是。 要讓一個元素的寬度根據內容撐開,只要設置其display不為塊級元素,不設置寬度就可以了 */ height: 65%; /* 百分比???? */ /* 百分比是父元素內容的百分比,去掉內邊距等之後的部分! */ padding-top: 5%; } #btn .num,.calc,.result{ display: inline-block; height: 20%; width: 20%; background-color: white; border: 1px solid seagreen; } /* .num,.calc,.result:hover{ box-shadow: 3px 3px orange; border: 1px solid darkorange; } 錯誤寫法,會解析為“為num類”和“calc”類添加新的常規樣式,並(只)為“result類”添加偽類 */ .num:hover{ box-shadow: 2px 2px orange; border: 1px solid darkorange; } .calc:hover{ box-shadow: 2px 2px orange; /* 用inset制造內嵌陰影 */ border: 1px solid darkorange; } .result:hover{ box-shadow: 2px 2px orange; border: 1px solid darkorange; } </style> </head> <body> <div id="container"> <input id="input" placeholder="在此輸入數字"> <button id="clear" value="clear" onclick="cle()">清除</button> <br> <div id="btn"> <button value="7" class="num" onclick="get(this.value)">7</button> <button value="8" class="num" onclick="get(this.value)">8</button> <button value="9" class="num" onclick="get(this.value)">9</button> <button value="+" class="calc" id="add" onclick="get(this.value)">+</button> <br> <button value="4" class="num" onclick="get(this.value)">4</button> <button value="5" class="num" onclick="get(this.value)">5</button> <button value="6" class="num" onclick="get(this.value)">6</button> <button value="-" class="calc" id="sub" onclick="get(this.value)">-</button> <br> <button value="1" class="num" onclick="get(this.value)">1</button> <button value="2" class="num" onclick="get(this.value)">2</button> <button value="3" class="num" onclick="get(this.value)">3</button> <button value="*" class="calc" id="mul" onclick="get(this.value)">*</button> <br> <button value="." class="num" onclick="get(this.value)">.</button> <button value="0" class="num" onclick="get(this.value)">0</button> <button value="/" class="calc" id="div" onclick="get(this.value)">/</button> <button value="=" class="result" id="re" >=</button> </div> </div> <script> // console.log(eval(2+1)); //獲取運算符元素 function get(num){ var show = document.getElementById("input"); show.value += num; } var clear_btn = document.getElementById("clear"); // clear_btn.onclick = clear; // 如果把點擊事件綁定在清除按鈕的HTML中會失效:在script中使用事件綁定或事件監聽器方可 //原因:...clear是保留字...,也就是說這三種方式都可以,打擾了,我是弟弟 function cle(){ var show = document.getElementById("input"); show.value = ""; } // var result_btn = document.getElementById("re"); function calculates(){ var result = 0; var temp; var show = document.getElementById("input"); temp = show.value; result = eval(temp); show.value = result; } result_btn.addEventListener("click",calculates,false); </script> </body> </html>

巨簡單巨醜的計算器(寫的我快自閉了)