📌  相关文章
📜  使用HTML,CSS和Bootstrap创建响应式网格Vanilla

📅  最后修改于: 2021-05-25 11:47:09             🧑  作者: Mango

许多现代网站都使用网格系统在其主页以及其他页面上显示数据块。网格在很大程度上类似于表格,但是,它在视觉上更具吸引力,并且经常显示同级元素。网格必须是自适应的,即它应该调整为用户的屏幕尺寸。

Bootstrap是一个非常流行的开源HTMLCSSJavaScript库,可帮助设计网站的前端。通常,引导程序代码非常紧凑且健壮,但是每个开发人员都应掌握Vanilla(Customizable)HTML和CSS的原因如下:

  • 从未使用过大量的实用程序和组件,因此它们是网页上的负担。
  • 引导程序代码很难自定义。
  • 引导程序会稍微减慢网站的下载速度,因为它首先加载jQuery,然后引导CSS,然后引导JS。

创建网格的两种可能方法:

1.不带Bootstrap的网格(Vanilla HTML CSS)

HTML代码:我们首先定义三个div,每个div都带有“ customRow ”类。然后在每个customRow div中创建一个img标签。

HTML


  

  geeksforgeeks vanilla grid
    
  
  

  

  
  
                                            
  
                              
  
                                            
     


CSS
img{
    width: 14%;
}
  
/* 40px margin on top and bottom, 
   zero margin on left and right*/
.customRow{
    margin: 40px 0; 
    text-align: center;
}


HTML


    
        
        
        
  
        
        
        
        
        Geeksforgeeks grid with bootstrap
    
    
        
        
                         
                
                                     
                
                                     
                
                                     
                
                                     
                
                                     
            
                         
                
                                     
                
                                     
                
                                     
            
                         
                
                                     
                
                                     
                
                                     
                
                                     
                
                                     
            
        
                                           


CSS
.row{
    margin: 40px 0;
}
img{
    width: 100%;
}


CSS代码:大多数样式是预定义的。但是,我们必须将每个图像的宽度设置为“ customRow ”的百分比,以便它们具有响应性,即它们的宽度随屏幕尺寸的变化而变化。我们为行设置了一些非零的边距,以使它们不会彼此粘连。最后,我们使用text-align属性将所有图像对齐到屏幕中心。

的CSS

img{
    width: 14%;
}
  
/* 40px margin on top and bottom, 
   zero margin on left and right*/
.customRow{
    margin: 40px 0; 
    text-align: center;
}

输出:

2.使用Bootstrap的网格

HTML代码:首先,我们需要从其官方网站复制引导程序入门模板。该模板包含引导CDN, jQuery CDN, popper.js CDN和Bootstrap JavaScript文件。为了方便起见,我将其放在这里。

然后,我们通过创建一个div来开始构建网格 类容器。这个div将包装我们所有的行,然后 对于每一行,我们:

  1. 用班级行创建一个div
  2. 在此“行div”内,创建所需数目的列,并创建尽可能多的div ,并为每个列div赋予一类col- *。此处的星号(*)类似于列的宽度。任何屏幕的总宽度设置为12,该总宽度在各列之间均分或不均分。在第一行中,定义了五列,每列的宽度为2,总共达到10,其余的2(12-10)用于空白。
  3. 然后根据需要放置图像标签
  4. 在每行图像的中心,向每个“ row div添加一个引导类justify-content-center。
  5. 在标题中放置指向自定义CSS文件的链接(此处为gfgBootstrapGrid.css)。

的HTML



    
        
        
        
  
        
        
        
        
        Geeksforgeeks grid with bootstrap
    
    
        
        
                         
                
                                     
                
                                     
                
                                     
                
                                     
                
                                     
            
                         
                
                                     
                
                                     
                
                                     
            
                         
                
                                     
                
                                     
                
                                     
                
                                     
                
                                     
            
        
                                           

CSS代码:首先,我们需要为每行留出页边距,以避免它们粘连。为此,我们追加了bootstrap的行类,并为其设置了“ 40px上下”和“ 0左右”的边距。我们还调整每个图像标签的大小,以获取其父元素(此处为“ column div”)的100%,这使图像具有响应能力

的CSS

.row{
    margin: 40px 0;
}
img{
    width: 100%;
}

输出:

两种方法之间的差异:

  1. 正如代码所反映的那样,对于小型项目(如此类项目),自定义CSS是更好的选择。这是因为要完成的类和归纳更少,并且代码是针对特定用例专门编写的。
  2. 但是,在大型项目中包含许多元素(例如登录页面,注册页面,主页等)的情况下,一般边距和填充总是相同的。因此,使用引导程序将避免重复代码,因此是首选方法。
  3. 由于Bootstrap是预定义的库,因此错误代码的机会比自定义CSS的机会要少得多。