⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 css.java

📁 手机Wap浏览器源码
💻 JAVA
字号:
package com.gameislive.browser;

import java.util.Vector;
import javax.microedition.lcdui.Image;

/**
 * CSS层叠样式,目前仅支持少量的,基本的样式
 * 
 * @author pan
 * @version 1.0.1
 */
public class Css {

	static final int ALIGN_LEFT = 0;
	static final int ALIGN_CENTER = 1;
	static final int ALIGN_RIGHT = 2;
	
    int margin_top;
    int margin_bottom;
    int margin_left;
    int margin_right;
    
    int width;
    int height;
    int bgColor;
    int foreColor;
    
    int padding_top;
    int padding_bottom;
    int padding_left;
    int padding_right;
    
    int text_align;
    int font_size;

    Image bgImg;
    
    Browser browser;
    
	static final int _default_padding_top = 0;	
	static final int _default_padding_bottom = 1;
    static final int _default_padding_left = 0;
    static final int _default_padding_right = 1;
	
    static final int _default_foreColor = 0x000000;
    static final int _default_bgColor = 0xffffff;
    
    public Css(Vector data,Css head,Browser browser){
    	this.browser = browser;
    	defaultCss();
    	// 如果上级标记的CSS不为空,则先用上级标记的CSS初始化
    	if(head!=null) copyCss(head);
    	// 加载自己的CSS样式(可能覆盖上级标记的)
    	if(data!=null) loadCss(data);
    }
    
    public Css(Browser browser){
    	this.browser = browser;
    	defaultCss();
    }
    
    void copyCss(Css css){
    	// 主要是字体样式的复制
    	foreColor = css.foreColor;
    	font_size = css.font_size;
    }
    
    /**
     * 默认的样式
     */
    void defaultCss(){
        margin_top=0;
        margin_bottom=0;
        margin_left=0;
        margin_right=0;
        
        width=0;
        height=0;
        bgColor=_default_bgColor;
        foreColor=_default_foreColor;
        
    	padding_top = _default_padding_top;
    	padding_bottom = _default_padding_bottom;
    	padding_left = _default_padding_left;
    	padding_right = _default_padding_right;
        
        text_align=ALIGN_LEFT;
        font_size=12;
        
        bgImg = null;
    }
    
    void loadCss(Vector tmp){
    	int num = tmp.size();
    	for(int i=0;i<num;i++){
    		String str = (String)tmp.elementAt(i);
    		int pos = str.indexOf(':');
    		if(pos==-1) continue;
    		String name = str.substring(0,pos).toLowerCase();
    		String value = str.substring(pos+1,str.length()-1);
			
    		value = Tools.RepString(value,"#","");
			value = Tools.RepString(value,"px","");
			
			// margin
    		if(name.equals("margin")){
    			margin_top = margin_bottom = margin_left = 
    				margin_right = Integer.parseInt(value);
    		}else if(name.equals("margin-top")){
    			margin_top = Integer.parseInt(value);
    		}else if(name.equals("margin-bottom")){
    			margin_bottom = Integer.parseInt(value);
    		}else if(name.equals("margin-left")){
    			margin_left = Integer.parseInt(value);
    		}else if(name.equals("margin-right")){
    			margin_right = Integer.parseInt(value);
    		}
    		
    		// size,color,bgcolor
    		else if(name.equals("width")){
    			width = Integer.parseInt(value);
    		}else if(name.equals("height")){
    			height = Integer.parseInt(value);
    		}else if(name.equals("background-color")){
    			bgColor = Integer.parseInt(value,16);
    		}else if(name.equals("color")){    			
    			try{
    				foreColor = Integer.parseInt(value,16);
    			}catch(Exception e){
    				foreColor = Tools.GetColor(value);
    			}
    		}
    		
    		// padding
    		else if(name.equals("padding")){
    			padding_top = padding_bottom = padding_left = 
    				padding_right = Integer.parseInt(value);
    			
    		}else if(name.equals("padding-top")){
    			padding_top = Integer.parseInt(value);
    		}else if(name.equals("padding-bottom")){
    			padding_bottom = Integer.parseInt(value);
    		}else if(name.equals("padding-left")){
    			padding_left = Integer.parseInt(value);
    		}else if(name.equals("padding-right")){
    			padding_right = Integer.parseInt(value);
    		}
    		
    		// align
    		else if(name.equals("text-align")){
    			if(value.equals("right")){
    				text_align = ALIGN_RIGHT;
    			}else if(value.equals("center")){
    				text_align = ALIGN_CENTER;
    			}else{
    				text_align = ALIGN_LEFT;
    			}
    		}
    		
    		else if(name.equals("float")){
    			
    		}
    		
    		// bg-img
    		else if(name.equals("background-image")){
    			// url(../img/idx_titlebk.gif)
    			if(!value.equals("")){
    				value = Tools.RepString(value, "url", "");
        			value = Tools.RepString(value, "(", "");
        			value = Tools.RepString(value, ")", "");
        			value = Tools.RepString(value, "../", "");  					
        			if(!value.equals("")){
        				// load image from server
        				bgImg = browser.loadImage(value);        				
        			}
    			}
    		}
    	}
    }    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -