Html 使这些单击函数在没有jQuery的情况下工作

Html 使这些单击函数在没有jQuery的情况下工作,html,css,fonts,Html,Css,Fonts,我创建了一个带有子菜单的垂直菜单。每个菜单至少有3个子菜单,每个子菜单仅在单击菜单时打开。(对于此菜单,我需要jQuery支持),但是,我没有在任何其他页面中使用jQuery,因此我跳过了链接jQuery。没有jQuery这就是它的外观:没有jQuery **如果编码器可以在没有jQuery欢迎的情况下完成这项工作,或者我如何使用CSS 下面是使用jQuery的 没有jQuery 作用 使用属性选择器,可以将默认的font size设置为20px,并覆盖特定元素: [class*="flatic

我创建了一个带有子菜单的垂直菜单。每个菜单至少有3个子菜单,每个子菜单仅在单击菜单时打开。(对于此菜单,我需要
jQuery
支持),但是,我没有在任何其他页面中使用
jQuery
,因此我跳过了链接
jQuery
。没有
jQuery
这就是它的外观:没有
jQuery

**如果编码器可以在没有
jQuery
欢迎的情况下完成这项工作,或者我如何使用
CSS

下面是使用jQuery的 没有
jQuery

作用
使用属性选择器,可以将默认的
font size
设置为
20px
,并覆盖特定元素:

[class*="flaticon-"] {
    font-size: 20px;    
}

h4[class*="flaticon-"] {
    font-size: 40px;
}

您应该像这样添加字体大小

.small-icon { 
    font-family:"Flaticon";
    font-size: 20px;
    line-height: 1;
}
.small-icon:before {
    font-size: 20px;        
    margin-left: 0;
}
.big-icon { 
    font-family:"Flaticon";
    font-size: 40px;
    line-height: 1;
}
.big-icon:before {
    font-size: 40px;        
    margin-left: 0;
}
对于html

<div class="center boxborder">
    <ul class="social">
        <li><a href="#"><span class="small-icon flaticon-facebook12" style="color: #3399ff;"></span></a>

        </li>
        <li> <a href="#"><span class="small-icon flaticon-social19" style="color:#33ccff;"></span></a>

        </li>
        <li> <a href="#"><span class="small-icon flaticon-google109" style="color: #ff3300;"></span></a>

        </li>
        <li><a href="#"><span class="small-icon flaticon-linkedin11" style="color: #21a6d8;"></span></a>

        </li>

    </ul>
</div>


实际上,尽管从技术上讲,您可以在CSS中实现这一点,但使用jQuery或vanilla JS代表了一个更好的解决方案,可以实现更强大的设置

它还确保您在内容(HTML)、样式(CSS)和功能(JS)之间保持正确和适当的分离

这就是说…你可以使用下面的(或类似的)CSS接近

HTML


我会提出一个没有jquery的解决方案。您应该向css中添加一些类,并将它们应用于html代码中适当的UL标记。下面是一个纯javascript(无jquery)的工作示例,这里的javascript源代码是:

function getXmlHttp(){
    try {
        return new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            return new ActiveXObject("Microsoft.XMLHTTP");
        } catch (ee) {
        }
    }
    if (typeof XMLHttpRequest!='undefined') {
        return new XMLHttpRequest();
    }
}
function hide(node){
    node.style.display='none';
}
function func(e){
    e.preventDefault();
    var q = getXmlHttp();
    var url = this.getAttribute('href');
    q.open('GET', url , false);
    q.send(null);
    var result = 'File '+url+' not found.';
    if(q.status == 200) {
        result = q.responseText;
    }
    document.querySelector('.page').innerHTML = result;
    document.querySelector('#leftmenu').style.width = '70px';
    var items = document.querySelectorAll('li ul, #leftmenu b');
    for (var i=0; i<items.length; i++) {
        hide(items[i]);
    }
    this.removeEventListener('click',func(),false);
}

function slideUp(node){
    node.setAttribute('class', "submenu hidden");
}

function slideDown(node){
    node.setAttribute('class', "submenu visible");
}

function switchSubMenu(){
var ch = this.children;
    for(var i=0; i<ch.length; i++) {
        if (ch[i].nodeName == 'UL') {
            var v = document.getElementsByClassName("visible");
            if (v) {
                for(var j=0; j<v.length; j++){
                    if(v[j] != ch[i]) {
                        slideUp(v[j]);
                    }
                }
            }
          ch[i].getAttribute('class') == "submenu hidden" ? slideDown(ch[i]) : slideUp(ch[i]);
        }
    }
}

var sm = document.querySelectorAll('.submenu');
for(var i=0; i<sm.length; i++) {
    slideUp(sm[i]);
    sm[i].parentNode.addEventListener("click",switchSubMenu, false);
}
var links = document.querySelectorAll('.reveal');
for(var j=0; j<links.length; j++) {
    links[j].addEventListener("click",func, false);
}
函数getXmlHttp(){ 试一试{ 返回新的ActiveXObject(“Msxml2.XMLHTTP”); }捕获(e){ 试一试{ 返回新的ActiveXObject(“Microsoft.XMLHTTP”); }捕获(ee){ } } if(XMLHttpRequest的类型!=“未定义”){ 返回新的XMLHttpRequest(); } } 函数隐藏(节点){ node.style.display='none'; } 函数func(e){ e、 预防默认值(); var q=getXmlHttp(); var url=this.getAttribute('href'); q、 打开('GET',url,false); q、 发送(空); var result='File'+url+'未找到'; 如果(q.status==200){ 结果=q.responseText; } document.querySelector('.page').innerHTML=result; document.querySelector(“#leftmenu”).style.width='70px'; var items=document.queryselectoral('li ul,#leftmenu b');
对于(var i=0;我应该更改哪些内容查看JSFIDLE链接以了解详细信息。添加类“子菜单”、“隐藏”和“可见”。这就是我应该更改的全部内容或其他任何内容,因为我不会像在fiddlein css中那样输出添加类:
。子菜单{overflow-y:隐藏;-webkit转换:最大高度0.5s缓进-出;-moz转换:最大高度0.5s缓进-出;-o-转换:最大高度0.5s缓进-出;转换:最大高度.5s缓进-出;}。隐藏{max height:0;}。可见{max height:300px;}
和在html中:将每个
都更改为
.before
标签插入
..
使用我之前编写的javascript代码我使用onload函数在同一页面中加载外部页面加载页面时,菜单大小的宽度将减小到
10%
,但这不起作用,并且该函数在问题中提到
<div class='menuGroup'>
    <label id='item1'>
        <input type='radio' for='item1' name='menu1' />Item 1
        <div class='menuGroup'>
            <label id='subitem1'>
                <input type='radio' for='subitem1' name='submenu1' />Item 1
                <div class='menuGroup'>more menu levels...</div>
            </label>
            <label id='subitem2'>
                <input type='radio' for='subitem2' name='submenu1' />Item 2
                <div class='menuGroup'>more menu levels...</div>
            </label>
        </div>
    </label>
    <label id='item2'>
        <input type='radio' for='item2' name='menu1' />Item 2
        <div class='menuGroup'>
            <label id='subitem3'>
                <input type='radio' for='subitem4' name='submenu2' />Item 1
                <div class='menuGroup'>more menu levels...</div>
            </label>
            <label id='subitem4'>
                <input type='radio' for='subitem5' name='submenu2' />Item 2
                <div class='menuGroup'>more menu levels...</div>
            </label>
        </div>
    </label>
</div>
label {
    display:block;
    position:relative;
}
label:not(:last-child) {
    border-bottom:1px solid grey;
}
input {
    display:none;
}
input:checked+.menuGroup {
    display:block;
    width:200px;
    left:100%;
    top:-1px;
}
label .menuGroup {
    display:none;
}
.menuGroup {
    position:absolute;
    border:1px solid grey;
}
function getXmlHttp(){
    try {
        return new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            return new ActiveXObject("Microsoft.XMLHTTP");
        } catch (ee) {
        }
    }
    if (typeof XMLHttpRequest!='undefined') {
        return new XMLHttpRequest();
    }
}
function hide(node){
    node.style.display='none';
}
function func(e){
    e.preventDefault();
    var q = getXmlHttp();
    var url = this.getAttribute('href');
    q.open('GET', url , false);
    q.send(null);
    var result = 'File '+url+' not found.';
    if(q.status == 200) {
        result = q.responseText;
    }
    document.querySelector('.page').innerHTML = result;
    document.querySelector('#leftmenu').style.width = '70px';
    var items = document.querySelectorAll('li ul, #leftmenu b');
    for (var i=0; i<items.length; i++) {
        hide(items[i]);
    }
    this.removeEventListener('click',func(),false);
}

function slideUp(node){
    node.setAttribute('class', "submenu hidden");
}

function slideDown(node){
    node.setAttribute('class', "submenu visible");
}

function switchSubMenu(){
var ch = this.children;
    for(var i=0; i<ch.length; i++) {
        if (ch[i].nodeName == 'UL') {
            var v = document.getElementsByClassName("visible");
            if (v) {
                for(var j=0; j<v.length; j++){
                    if(v[j] != ch[i]) {
                        slideUp(v[j]);
                    }
                }
            }
          ch[i].getAttribute('class') == "submenu hidden" ? slideDown(ch[i]) : slideUp(ch[i]);
        }
    }
}

var sm = document.querySelectorAll('.submenu');
for(var i=0; i<sm.length; i++) {
    slideUp(sm[i]);
    sm[i].parentNode.addEventListener("click",switchSubMenu, false);
}
var links = document.querySelectorAll('.reveal');
for(var j=0; j<links.length; j++) {
    links[j].addEventListener("click",func, false);
}