Käyttöliittymä online-editorille

editor_ui

html_css_basics | ├── demos │ ├── ... │ └── d12 │ ├── index.html │ └── style.css |

Tehtävä

Kuvakkeet on haettu Fontawesome kirjastosta

Lisää se headiin

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

Myös jQueryä saattaa tarvita (myös headiin)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

Kun Fontawesome on linkitetty headiin, voit selata ja käyttää sen kuvakkeita i-tagilla seuraavaan tapaan:

<i class="fa fa-home" aria-hidden="true"></i> valikko

Vasemman laidan valikolla (nav) on id 'tools' ja ylävalikolla (nav) id 'topnav' jotta niihin voidaan kohdistaa eri CSS-säännöt

Työkaluvalikko (Vasemman laidan)

/* toolbar pseudos */ [id^="tool"]:checked ~ label i{ color: var(--focus) } [id^="tool"]{ display: none; }

Ylävalikko

Katso Lisämateriaalit-kohdasta Hover / Toggle menut


Jos aikaa jää

editor.js

/* editor.js */ const radios = document.querySelectorAll("#topnav input[type='radio']"); function close_menus(){ for (let checkbox of radios) { checkbox.checked = false; } let $radios = $('#topnav input[type="radio"]'); $radios.prop('checked', false).data('checked', false); } function setup(){ const main = document.getElementById("main"); const toolbox = document.getElementById("tools") const topnav_sub_items = document.querySelectorAll("#topnav ul li ul li *") main.addEventListener('click', () => {close_menus()}); toolbox.addEventListener('click', () => {close_menus()}); topnav_sub_items.forEach((element) => { element.addEventListener('click', () => {close_menus()}); }) let $radios = $('#topnav input[type="radio"]'); $radios.click(function () { let $this = $(this); if ($this.data('checked')) { this.checked = false; } let $otherRadios = $radios.not($this).filter('[name="'+ $this.attr('name') + '"]'); $otherRadios.prop('checked', false).data('checked', false); $this.data('checked', this.checked); }); let fileupload = document.getElementById('open_file') fileupload.onchange = function(e) { open_file() }; } function open_file(){ let file = document.querySelector('#open_file').files[0]; let reader = new FileReader(); reader.readAsText(file, 'ISO-8859-1'); reader.onload = function(event) { let csv = event.target.result; let rows = csv.split('\n'); let html = '<table>'; for (let i = 0; i < rows.length; i++) { cols = rows[i].split(';'); html+=`<tr>`; for (let j = 0; j < cols.length; j++) { let value = cols[j]; html+= `<td>${value}</td>`; } html += `</tr>`; } html += `</table>`; document.getElementById("main").innerHTML = html; } } function close_file(){ document.getElementById("main").innerHTML = '<span>[no csv file]</span><br>File > Open'; }