heting

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            40 隨筆 :: 9 文章 :: 45 評(píng)論 :: 0 Trackbacks

          2010年3月20日 #

           

          create or replace package CARD_SERVICE_DAY_VIEW_PARAM  is 
             
          function set_param(num varcharreturn varchar
             
          function get_param  return varchar

             
          end CARD_SERVICE_DAY_VIEW_PARAM; 
          commit;
             
             
          create or replace package body CARD_SERVICE_DAY_VIEW_PARAM is 
                 paramValue 
          varchar(10); 
                 
          function set_param(num varcharreturn varchar is 
                 
          begin 
                   paramValue:
          =num; 
                   
          return num; 
                  
          end;  
                 
                 
          function get_param return varchar is 
                 
          begin 
                   
          return paramValue; 
                 
          end
                 
             
          end CARD_SERVICE_DAY_VIEW_PARAM;    
          commit;

          create or replace view CARD_SERVICE_DAY_VIEW as 
          select
          cs.id,
          cs.card_id,
          cs.lock_money,
          to_char(cs.check_time,
          'yyyy-MM-dd hh24:mi'as check_time,
          cs.name,cs.phone,( months_between(to_date(CARD_SERVICE_DAY_VIEW_PARAM.get_param(),
          'yyyyMMdd'),
          to_date(to_char(cs.CHECK_TIME,
          'yyyyMMdd'),'yyyyMMdd'))  ) as curr_batch,
          (
          select count(1from transaction where card_id=cs.card_id and tran_time between cs.check_time and to_date(CARD_SERVICE_DAY_VIEW_PARAM.get_param(),'yyyyMMdd'and (curr_bal-money)<cs.lock_money) as condition,
          (
          select count(1from service_transaction where batch=(months_between(to_date(CARD_SERVICE_DAY_VIEW_PARAM.get_param(),'yyyyMMdd'),to_date(to_char(cs.CHECK_TIME,'yyyyMMdd'),'yyyyMMdd'))) and s_id=cs.id) as hasAudit 
          from card_service cs 
          where cs.state='T' 
          and 
          months_between(to_date(CARD_SERVICE_DAY_VIEW_PARAM.get_param(),
          'yyyyMMdd'),to_date(to_char(cs.CHECK_TIME,'yyyyMMdd'),'yyyyMMdd')) in (1,2,3,4,5,6
          order by cs.card_id
          commit;
          posted @ 2010-10-11 15:26 賀挺 閱讀(542) | 評(píng)論 (0)編輯 收藏

          window.showdialog完全手冊(cè),解決模態(tài)窗口,傳值和返回值問題2009-08-28 13:31基本介紹:
          showModalDialog() (IE 4+ 支持)
          showModelessDialog() (IE 5+ 支持)
          window.showModalDialog()方法用來創(chuàng)建一個(gè)顯示HTML內(nèi)容的模態(tài)對(duì)話框。
          window.showModelessDialog()方法用來創(chuàng)建一個(gè)顯示HTML內(nèi)容的非模態(tài)對(duì)話框。

          使用方法:
          vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
          vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])

          參數(shù)說明:
          sURL--必選參數(shù),類型:字符串。用來指定對(duì)話框要顯示的文檔的URL。
          vArguments--可選參數(shù),類型:變體。用來向?qū)υ捒騻鬟f參數(shù)。傳遞的參數(shù)類型不限,包括數(shù)組等。對(duì)話框通過window.dialogArguments來取

          得傳遞進(jìn)來的參數(shù)。
          sFeatures--可選參數(shù),類型:字符串。用來描述對(duì)話框的外觀等信息,可以使用以下的一個(gè)或幾個(gè),用分號(hào)“;”隔開。
          1.dialogHeight :對(duì)話框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默認(rèn)的單位是em,而IE5中是px,為方便其見,

          在定義modal方式的對(duì)話框時(shí),用px做單位。
          2.dialogWidth: 對(duì)話框?qū)挾取?br /> 3.dialogLeft: 離屏幕左的距離。
          4.dialogTop: 離屏幕上的距離。
          5.center: {yes | no | 1 | 0 }:窗口是否居中,默認(rèn)yes,但仍可以指定高度和寬度。
          6.help: {yes | no | 1 | 0 }:是否顯示幫助按鈕,默認(rèn)yes。
          7.resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改變大小。默認(rèn)no。
          8.status: {yes | no | 1 | 0 } [IE5+]:是否顯示狀態(tài)欄。默認(rèn)為yes[ Modeless]或no[Modal]。
          9.scroll:{ yes | no | 1 | 0 | on | off }:指明對(duì)話框是否顯示滾動(dòng)條。默認(rèn)為yes。
          下面幾個(gè)屬性是用在HTA中的,在一般的網(wǎng)頁(yè)中一般不使用。
          10.dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印預(yù)覽時(shí)對(duì)話框是否隱藏。默認(rèn)為no。
          11.edge:{ sunken | raised }:指明對(duì)話框的邊框樣式。默認(rèn)為raised。
          12.unadorned:{ yes | no | 1 | 0 | on | off }:默認(rèn)為no。

          參數(shù)傳遞:
          1.要想對(duì)話框傳遞參數(shù),是通過vArguments來進(jìn)行傳遞的。類型不限制,對(duì)于字符串類型,最大為4096個(gè)字符。也可以傳遞對(duì)象,例如:


          <script>
          var obj = new Object();
          obj.name="51js";
          window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");
          </script>
          modal.htm
          <script>
          var obj = window.dialogArguments
          alert("您傳遞的參數(shù)為:" + obj.name)
          </script>


          2.可以通過window.returnValue向打開對(duì)話框的窗口返回信息,當(dāng)然也可以是對(duì)象。例如:

          <script>
          str =window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");
          alert(str);
          </script>
          modal.htm
          <script>
          window.returnValue="/";
          </script>
           

          posted @ 2010-08-26 11:00 賀挺 閱讀(251) | 評(píng)論 (0)編輯 收藏

          AxWindowsMediaPlayer的詳細(xì)用法
          AxWindowsMediaPlayer的詳細(xì)用法收藏
          找我把,剛做過,相當(dāng)熟悉


          屬性/方法名: 說明: 
          [基本屬性]   
          URL:String; 指定媒體位置,本機(jī)或網(wǎng)絡(luò)地址 
          uiMode:String; 播放器界面模式,可為Full, Mini, None, Invisible 
          playState:integer; 播放狀態(tài),1=停止,2=暫停,3=播放,6=正在緩沖,9=正在連接,10=準(zhǔn)備就緒 
          enableContextMenu:Boolean; 啟用/禁用右鍵菜單 
          fullScreen:boolean; 是否全屏顯示 
          [controls] wmp.controls //播放器基本控制 
          controls.play; 播放 
          controls.pause; 暫停 
          controls.stop; 停止 
          controls.currentPosition:double; 當(dāng)前進(jìn)度 
          controls.currentPositionString:string; 當(dāng)前進(jìn)度,字符串格式。如“00:23” 
          controls.fastForward; 快進(jìn) 
          controls.fastReverse; 快退 
          controls.next; 下一曲 
          controls.previous; 上一曲 
          [settings] wmp.settings //播放器基本設(shè)置 
          settings.volume:integer; 音量,0-100 
          settings.autoStart:Boolean; 是否自動(dòng)播放 
          settings.mute:Boolean; 是否靜音 
          settings.playCount:integer; 播放次數(shù) 
          [currentMedia] wmp.currentMedia //當(dāng)前媒體屬性 
          currentMedia.duration:double; 媒體總長(zhǎng)度 
          currentMedia.durationString:string; 媒體總長(zhǎng)度,字符串格式。如“03:24” 
          currentMedia.getItemInfo(const string); 獲取當(dāng)前媒體信息"Title"=媒體標(biāo)題,"Author"=藝術(shù)家,"Copyright"=版權(quán)信息,"Description"=媒體內(nèi)容描述,"Duration"=持續(xù)時(shí)間(秒),"FileSize"=文件大小,"FileType"=文件類型,"sourceURL"=原始地址 
          currentMedia.setItemInfo(const string); 通過屬性名設(shè)置媒體信息 
          currentMedia.name:string; 同 currentMedia.getItemInfo("Title") 
          [currentPlaylist] wmp.currentPlaylist //當(dāng)前播放列表屬性 
          currentPlaylist.count:integer; 當(dāng)前播放列表所包含媒體數(shù) 
          currentPlaylist.Item[integer]; 獲取或設(shè)置指定項(xiàng)目媒體信息,其子屬性同wmp.currentMedia 
          AxWindowsMediaPlayer控件的屬性收藏
          MediaPlayer1.Play          播放  
          MediaPlayer1.Stop          停止  
          MediaPlayer1.Pause          暫停  
          MediaPlayer1.PlayCount        文件播放次數(shù)  
          MediaPlayer1.AutoRewind       是否循環(huán)播放  
          MediaPlayer1.Balance         聲道  
          MediaPlayer1.Volume         音量  
          MediaPlayer1.Mute          靜音  
          MediaPlayer1.EnableContextMenu    是否允許在控件上點(diǎn)擊鼠標(biāo)右鍵時(shí)彈出快捷菜單  
          MediaPlayer1.AnimationAtStart    是否在播放前先播放動(dòng)畫  
          MediaPlayer1.ShowControls      是否顯示控件工具欄  
          MediaPlayer1.ShowAudioControls    是否顯示聲音控制按鈕  
          MediaPlayer1.ShowDisplay       是否顯示數(shù)據(jù)文件的相關(guān)信息  
          MediaPlayer1.ShowGotoBar       是否顯示Goto欄  
          MediaPlayer1.ShowPositionControls  是否顯示位置調(diào)節(jié)按鈕  
          MediaPlayer1.ShowStatusBar      是否顯示狀態(tài)欄  
          MediaPlayer1.ShowTracker       是否顯示進(jìn)度條  
          MediaPlayer1.FastForward       快進(jìn)  
          MediaPlayer1.FastReverse       快退  
          MediaPlayer1.Rate          快進(jìn)/快退速率  
          MediaPlayer1.AllowChangeDisplaySize 是否允許自由設(shè)置播放圖象大小  
          MediaPlayer1.DisplaySize       設(shè)置播放圖象大小  
              1-MpDefaultSize         原始大小  
              2-MpHalfSize           原始大小的一半  
              3-MpDoubleSize          原始大小的兩倍  
              4-MpFullScreen          全屏  
              5-MpOneSixteenthScreen      屏幕大小的1/16  
              6-MpOneFourthScreen       屏幕大小的1/4  
              7-MpOneHalfScreen        屏幕大小的1/2  
          MediaPlayer1.ClickToPlay       是否允許單擊播放窗口啟動(dòng)Media Player  
           

          http://blog.csdn.net/brouse8079/archive/2007/10/17/1829885.aspx

           

          AxWindowsMediaPlayer常用屬性
          2008-03-18 21:28
          2. Ctlcontrols屬性

          Ctlcontrols屬性是AxWindowsMediaPlayer的一個(gè)重

          要屬性, 此控件中有許多常用成員。

          (1) 方法play

          用于播放多媒體文件,其格式為:

          窗體名.控件名.Ctlcontrols.play()

          如: AxWindowsMediaPlayer1.Ctlcontrols.play()

          ‘此處缺省窗體名是Me

          (2) 方法pause

          用于暫停正在播放的多媒體文件,其格式為:

          窗體名.控件名.Ctlcontrols.pause()

          如: AxWindowsMediaPlayer1.Ctlcontrols.pause()

          (3) 方法stop

          用于停止正在播放的多媒體文件,其格式為:

          窗體名.控件名.Ctlcontrols.stop()

          如: AxWindowsMediaPlayer1.Ctlcontrols.stop()

          (4) 方法fastforward

          用于將正在播放的多媒體文件快進(jìn),其格式為:

          窗體名.控件名.Ctlcontrols.fastforward()

          如:

          AxWindowsMediaPlayer1.Ctlcontrols.forward()

          (5) 方法fastreverse

          窗體名.控件名.Ctlcontrols.fastreverse()

          如:

          AxWindowsMediaPlayer1.Ctlcontrols.fastreverse

          ()

          6. 屬性CurrentPosition

          用于獲取多媒體文件當(dāng)前的播放進(jìn)度,其值是數(shù)值類

          型,使用格式為:

          窗體名.控件名.Ctlcontrols.currentPosition

          d1=AxWindowsMediaPlayer1.Ctlcontrols.currentPosi

          tion

          其中d1 是一個(gè)整型變量。

          7. 屬性Duration

          用于獲取當(dāng)前多媒體文件的播放的總時(shí)間,其值為數(shù)

          值類型,其使用格式為:

          窗體名.控件名.currentMedia.duration

          如:d2

          =AxWindowsMediaPlayer1.currentMedia.duration

          其中d2是一個(gè)整型變量。
          controls.currentPositionString:string; 當(dāng)前進(jìn)

          度,字符串格式。如“00:23”


          屬性/方法名: 說明: 
          [基本屬性]   
          URL:String; 指定媒體位置,本機(jī)或網(wǎng)絡(luò)地址 
          uiMode:String; 播放器界面模式,可為Full, Mini,

          None, Invisible 
          playState:integer; 播放狀態(tài),1=停止,2=暫停,

          3=播放,6=正在緩沖,9=正在連接,10=準(zhǔn)備就緒

          player.PlayStateChange += new AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler(player_PlayStateChange);

          private void player_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
          {
            // Test the current state of the player and display a message for each state.
            switch (e.newState)
            {
            case 0: // Undefined
            currentStateLabel.Text = "Undefined";
            break;

            case 1: // Stopped
            currentStateLabel.Text = "Stopped";
            break;

            case 2: // Paused
            currentStateLabel.Text = "Paused";
            break;

            case 3: // Playing
            currentStateLabel.Text = "Playing";
            break;

            case 4: // ScanForward
            currentStateLabel.Text = "ScanForward";
            break;

            case 5: // ScanReverse
            currentStateLabel.Text = "ScanReverse";
            break;

            case 6: // Buffering
            currentStateLabel.Text = "Buffering";
            break;

            case 7: // Waiting
            currentStateLabel.Text = "Waiting";
            break;

            case 8: // MediaEnded
            currentStateLabel.Text = "MediaEnded";
            break;

            case 9: // Transitioning
            currentStateLabel.Text = "Transitioning";
            break;

            case 10: // Ready
            currentStateLabel.Text = "Ready";
            break;

            case 11: // Reconnecting
            currentStateLabel.Text = "Reconnecting";
            break;

            case 12: // Last
            currentStateLabel.Text = "Last";
            break;

            default:
            currentStateLabel.Text = ("Unknown State: " + e.newState.ToString());
            break;
            }
          }
           

           


          enableContextMenu:Boolean; 啟用/禁用右鍵菜單 
          fullScreen:boolean; 是否全屏顯示 
          controls.currentPosition:double; 當(dāng)前進(jìn)度 
          controls.fastForward; 快進(jìn) 
          controls.fastReverse; 快退 
          controls.next; 下一曲 
          controls.previous; 上一曲 
          [settings] wmp.settings //播放器基本設(shè)置 
          settings.volume:integer; 音量,0-100 
          settings.autoStart:Boolean; 是否自動(dòng)播放 
          settings.mute:Boolean; 是否靜音 
          settings.playCount:integer; 播放次數(shù) 
          [currentMedia] wmp.currentMedia //當(dāng)前媒體屬性 
          currentMedia.duration:double; 媒體總長(zhǎng)度 
          currentMedia.durationString:string; 媒體總長(zhǎng)度

          ,字符串格式。如“03:24” 
          currentMedia.getItemInfo(const string); 獲取當(dāng)

          前媒體信息"Title"=媒體標(biāo)題,"Author"=藝術(shù)

          家,"Copyright"=版權(quán)信息,"Description"=媒體內(nèi)

          容描述,"Duration"=持續(xù)時(shí)間(秒),"FileSize"=

          文件大小,"FileType"=文件類型,"sourceURL"=原

          始地址 
          currentMedia.setItemInfo(const string); 通過屬

          性名設(shè)置媒體信息 
          currentMedia.name:string; 同

          currentMedia.getItemInfo("Title") 
          [currentPlaylist] wmp.currentPlaylist //當(dāng)前播

          放列表屬性 
          currentPlaylist.count:integer; 當(dāng)前播放列表所

          包含媒體數(shù) 
          currentPlaylist.Item[integer]; 獲取或設(shè)置指定

          項(xiàng)目媒體信息,其子屬性同wmp.currentMedia
          posted @ 2010-08-19 13:54 賀挺 閱讀(1288) | 評(píng)論 (0)編輯 收藏

          最近有個(gè)項(xiàng)目將要用到WebSphere,所以我提前來熟悉一下,在WebSphere7.0上安裝完一個(gè)struts2的小項(xiàng)目測(cè)試,在tomcat下該項(xiàng)目沒有任何問題,當(dāng)我把tomcat下打包的war包在WebSphere中安裝后,就只能訪問html頁(yè)面了,其余的struts2的請(qǐng)求,跟jsp頁(yè)面都不能訪問,提示您無權(quán)查看此頁(yè)面,跑到日志文件中發(fā)現(xiàn),啟動(dòng)時(shí)有如下錯(cuò)誤:
          [10-8-18 15:17:41:079 CST] 00000010 webapp        E com.ibm.ws.webcontainer.webapp.WebApp initializeExtensionProcessors SRVE0280E: 擴(kuò)展處理器無法在工廠 [com.ibm.ws.jsp.webcontainerext.ws.WASJSPExtensionFactory@2bec2bec] 中進(jìn)行初始化:java.lang.ClassCastException: com.sun.faces.application.WebappLifecycleListener incompatible with java.util.EventListener
                  at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.
          <init>(AbstractJSPExtensionProcessor.java:250)
                  at com.ibm.ws.jsp.webcontainerext.ws.WASJSPExtensionProcessor.
          <init>(WASJSPExtensionProcessor.java:70)
                  at com.ibm.ws.jsp.webcontainerext.ws.WASJSPExtensionFactory.createProcessor(WASJSPExtensionFactory.java:
          251)
                  at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionFactory.createExtensionProcessor(AbstractJSPExtensionFactory.java:
          75)
                  at com.ibm.ws.webcontainer.webapp.WebApp.initializeExtensionProcessors(WebApp.java:
          1313)
                  at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinish(WebApp.java:
          360)
                  at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:
          298)
                  at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:
          100)
                  at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:
          166)
                  at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:
          731)
                  at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:
          616)
                  at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:
          376)
                  at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:
          668)
                  at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:
          1122)
                  at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:
          1315)
                  at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:
          619)
                  at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:
          940)
                  at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:
          725)
                  at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:
          2046)
                  at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:
          439)
                  at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:
          123)
                  at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:
          382)
                  at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$
          300(CompositionUnitMgrImpl.java:110)
                  at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:
          949)
                  at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:
          349)
                  at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:
          1550)

          [
          10-8-18 15:17:41:562 CST] 00000010 config        I   Initializing Sun's JavaServer Faces implementation (1.2_07-b03-FCS) for context '/cc'
          [10-8-18 15:17:44:579 CST] 00000010 webapp        W com.ibm.ws.webcontainer.webapp.WebApp initializeTargetMappings SRVE0269W: 找不到用于處理 JSP 的擴(kuò)展處理器。
          [
          10-8-18 15:17:44:584 CST] 00000010 webcontainer  I com.ibm.ws.wswebcontainer.VirtualHost addWebApplication SRVE0250I: Web 模塊 null 已綁定到 default_host[*:9080,*:80,*:9443,*:5060,*:5061,*:443]。
          [
          10-8-18 15:17:44:616 CST] 0000000f webapp        I com.ibm.ws.webcontainer.webapp.WebGroupImpl WebGroup SRVE0169I: 正在裝入 Web 模塊:WIM。
          [
          10-8-18 15:17:44:793 CST] 0000000f WASSessionCor I SessionContextRegistry getSessionContext SESN0176I: 將為應(yīng)用程序鍵 admin_host/wim 創(chuàng)建新的會(huì)話上下文
          [
          10-8-18 15:17:44:933 CST] 0000000f webcontainer  I com.ibm.ws.wswebcontainer.VirtualHost addWebApplication SRVE0250I: Web 模塊 WIM 已綁定到 admin_host[*:9060,*:9043]。
          [
          10-8-18 15:17:45:194 CST] 00000011 webapp        I com.ibm.ws.webcontainer.webapp.WebGroupImpl WebGroup SRVE0169I: 正在裝入 Web 模塊:PlantsByWebSphere Sample Gallery Web Application。
          [
          10-8-18 15:17:45:262 CST] 00000010 ApplicationMg A   WSVR0221I: 應(yīng)用程序已啟動(dòng):StrutsTest_war
          [
          10-8-18 15:17:45:288 CST] 00000010 CompositionUn A   WSVR0191I: 已啟動(dòng) BLA WebSphere:blaname=StrutsTest_war 中的組合單元 WebSphere:cuname=StrutsTest_war。

          網(wǎng)上百度了一大堆都沒有解決掉,
          有的說在應(yīng)用程序服務(wù)器 > WebSphere_Portal > Web 容器 > 定制屬性->新建屬性
          com.ibm.ws.webcontainer.invokefilterscompatibility  true
          添加以上屬性,但是沒有什么作用。

          最后我將myeclipse中發(fā)布到WebSphere中的war包,去安裝后,該問題消失了,一切訪問都沒問題。
          比對(duì)一下里邊的包,發(fā)下tomcat的war包多了三個(gè)jar包jsf-api.jar,jsf-impl.jar,jstl-1.2.jar,不管三七二十一,先刪了再說,再次安裝到WebSphere問題沒在出現(xiàn)。
          再次查看以前的錯(cuò)誤信息原來說的是jsf-impl.jar包中的com.sun.faces.application.WebappLifecycleListener與java.util.EventListener不兼容導(dǎo)致。

           

          posted @ 2010-08-17 16:24 賀挺 閱讀(2984) | 評(píng)論 (0)編輯 收藏

          ifconfig eth0 1.2.3.4(IP地址) netmask 255.0.0.0(網(wǎng)絡(luò)掩碼) up
          posted @ 2010-08-16 10:17 賀挺 閱讀(221) | 評(píng)論 (0)編輯 收藏

          在說到這個(gè)問題的時(shí)候,也許有人會(huì)問CSS中不是有vertical-align屬性來設(shè)置垂直居中的嗎?即使是某些瀏覽器不支持我只需做少許的CSS Hack技術(shù)就可以啊!所以在這里我還要啰嗦兩句,CSS中的確是有vertical-align屬性,但是它只對(duì)(X)HTML元素中擁有valign特性的元素才生效,例如表格元素中的<td>、<th>、<caption>等,而像<div>、<span>這樣的元素是沒有valign特性的,因此使用vertical-align對(duì)它們不起作用。

          CSS網(wǎng)頁(yè)布局DIV水平居中的各種方法

          一、單行垂直居中

          如果一個(gè)容器中只有一行文字,對(duì)它實(shí)現(xiàn)居中相對(duì)比較簡(jiǎn)單,我們只需要設(shè)置它的實(shí)際高度height和所在行的高度line-height相等即可。如:

          imoker.cn(愛摩客)提供的代碼片段:

          div {  
            height:25px;  
            line-height:25px;  
            overflow:hidden;  
          }
          這段代碼很簡(jiǎn)單,后面使用overflow:hidden的設(shè)置是為了防止內(nèi)容超出容器或者產(chǎn)生自動(dòng)換行,這樣就達(dá)不到垂直居中效果了。

          imoker.cn(愛摩客)提供的代碼片段:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
          <html xmlns="http://www.w3.org/1999/xhtml">  
            <head>  
              <title> 單行文字實(shí)現(xiàn)垂直居中 </title>  
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
              <style type="text/css">  
                body { font-size:12px;font-family:tahoma;}  
                div {  
                  height:25px;  
                  line-height:25px;  
                  border:1px solid #FF0099;  
                  background-color:#FFCCFF;  
                }  
              </style>  
            </head>  
            <body>  
              <div>現(xiàn)在我們要使這段文字垂直居中顯示!</div>  
            </body>  
          </html>
          不過在Internet Explorer 6及以下版本中,這和方法不支持對(duì)圖片設(shè)置垂直居中。

          二、多行未知高度文字的垂直居中

          如果一段內(nèi)容,它的高度是可變的那么我們就可以使用上一節(jié)講到的實(shí)現(xiàn)水平居中時(shí)使用到的最后一種方法,就是設(shè)定Padding,使上下的padding值相同即可。同樣的,這也是一種“看起來”的垂直居中方式,它只不過是使文字把<div>完全填充的一種方式而已。可以使用類似下面的代碼:

          imoker.cn(愛摩客)提供的代碼片段:

          div {  
            padding:25px;  
          }
          這種方法的優(yōu)點(diǎn)就是它可以在任何瀏覽器上運(yùn)行,并且代碼很簡(jiǎn)單,只不過這種方法應(yīng)用的前提就是容器的高度必須是可伸縮的。

          imoker.cn(愛摩客)提供的代碼片段:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
          <html xmlns="http://www.w3.org/1999/xhtml">  
            <head>  
              <title> 多行文字實(shí)現(xiàn)垂直居中 </title>  
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
              <style type="text/css">  
                body { font-size:12px;font-family:tahoma;}  
                div {  
                  padding:25px;  
                  border:1px solid #FF0099;  
                  background-color:#FFCCFF;  
                  width:760px;  
                }  
              </style>  
            </head>  
            <body>  
              <div><pre>現(xiàn)在我們要使這段文字垂直居中顯示!  
                div {  
                  padding:25px;  
                  border:1px solid #FF0099;  
                  background-color:#FFCCFF;  
                }  
              </pre></div>  
            </body>  
          </html>
          三、多行文本固定高度的居中

          在本文的一開始,我們已經(jīng)說過CSS中的vertical-align屬性只會(huì)對(duì)擁有valign特性的(X)HTML標(biāo)簽起作用,但是在CSS中還有一個(gè)display屬性能夠模擬<table>,所以我們可以使用這個(gè)屬性來讓<div>模擬<table>就可以使用vertical-align了。注意,display:table和display:table-cell的使用方法,前者必須設(shè)置在父元素上,后者必須設(shè)置在子元素上,因此我們要為需要定位的文本再增加一個(gè)<div>元素:

          imoker.cn(愛摩客)提供的代碼片段:

          div#wrap {  
            height:400px;  
            display:table;  
          }  
          div#content {  
            vertical-align:middle;  
            display:table-cell;  
            border:1px solid #FF0099;  
            background-color:#FFCCFF;  
            width:760px;  
          }


          imoker.cn(愛摩客)提供的代碼片段:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
          <html xmlns="http://www.w3.org/1999/xhtml">   
            <head>   
              <title> 多行文字實(shí)現(xiàn)垂直居中 </title>   
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
              <style type="text/css">   
                body { font-size:12px;font-family:tahoma;}   
                  div#wrap {   
                  height:400px;   
                  display:table;   
                }   
                div#content {   
                  vertical-align:middle;   
                  display:table-cell;   
                  border:1px solid #FF0099;   
                  background-color:#FFCCFF;   
                  width:760px;   
                }   
              </style>   
            </head>   
            <body>   
              <div id="wrap">   
                <div id="content"><pre>現(xiàn)在我們要使這段文字垂直居中顯示!   
                  div#wrap {   
                    height:400px;   
                    display:table;   
                  }   
                  div#content {   
                    vertical-align:middle;   
                    display:table-cell;   
                    border:1px solid #FF0099;   
                    background-color:#FFCCFF;   
                    width:760px;   
                 }   
                </pre></div>   
              </div>   
            </body>   
          </html>
          這個(gè)方法應(yīng)該是很理想了,但是不幸的是Internet Explorer 6 并不能正確地理解display:table和display:table-cell,因此這種方法在Internet Explorer 6及以下的版本中是無效的。嗯,這讓人很郁悶!不過我們還其它的辦法。

          四、在Internet Explorer中的解決方案

          在Internet Explorer 6及以下版本中,在高度的計(jì)算上存在著缺陷的。在Internet Explorer 6中對(duì)父元素進(jìn)行定位后,如果再對(duì)子元素進(jìn)行百分比計(jì)算時(shí),計(jì)算的基礎(chǔ)似乎是有繼承性的(如果定位的數(shù)值是絕對(duì)數(shù)值沒有這個(gè)問題,但是使用百分比計(jì)算的基礎(chǔ)將不再是該元素的高度,而從父元素繼承來的定位高度)。例如,我們有下面這樣一個(gè)(X)HTML代碼段:

          imoker.cn(愛摩客)提供的代碼片段:

          <div id="wrap">  
            <div id="subwrap">  
              <div id="content">  
              </div>  
            </div>  
          </div>
          如果我們對(duì)subwrap進(jìn)行了絕對(duì)定位,那么content也會(huì)繼承了這個(gè)屬性,雖然它不會(huì)在頁(yè)面中馬上顯示出來,但是如果再對(duì)content進(jìn)行相對(duì)定位的時(shí)候,你使用的100%分比將不再是content原有的高度。例如,我們?cè)O(shè)定了subwrap的position為40%,我們?nèi)绻胧筩ontent的上邊緣和wrap重合的話就必須設(shè)置top:-80%;那么,如果我們?cè)O(shè)定subwrap的top:50%的話,我們必須使用100%才能使content回到原來的位置上去,但是如果我們把content也設(shè)置50%呢?那么它就正好垂直居中了。所以我們可以使用這中方法來實(shí)現(xiàn)Internet Explorer 6中的垂直居中:

          imoker.cn(愛摩客)提供的代碼片段:

          div#wrap {  
            border:1px solid #FF0099;  
            background-color:#FFCCFF;  
            width:760px;  
            height:400px;  
            position:relative;  
          }  
          div#subwrap {  
            position:absolute;  
            border:1px solid #000;  
            top:50%;  
          }  
          div#content {  
            border:1px solid #000;  
            position:relative;  
            top:-50%;  
          }
          當(dāng)然,這段代碼只能在Internet Exlporer 6等計(jì)算存在問題的瀏覽器中才會(huì)有作用。(不過我不解,我查閱了很多文章,不知道是因?yàn)槌鎏幭嗤€是什么原因,似乎很多人都不愿意去解釋Internet Exlporer 6中這個(gè)Bug的原理,我也只是了解了一點(diǎn)皮毛,還要再研究)

          imoker.cn(愛摩客)提供的代碼片段:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
          <html xmlns="http://www.w3.org/1999/xhtml">  
            <head>  
              <title> 多行文字實(shí)現(xiàn)垂直居中 </title>  
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
              <style type="text/css">  
                body { font-size:12px;font-family:tahoma;}  
                div#wrap {  
                  border:1px solid #FF0099;  
                  background-color:#FFCCFF;  
                  width:760px;  
                  height:400px;  
                  position:relative;  
                }  
                div#subwrap {  
                  position:absolute;  
                  top:50%;  
                }  
                div#content {  
                    position:relative;  
                    top:-50%;  
                }  
              </style>  
            </head>  
            <body>  
              <div id="wrap">  
                <div id="subwrap">  
                  <div id="content"><pre>現(xiàn)在我們要使這段文字垂直居中顯示!  
                    div#wrap {  
                      border:1px solid #FF0099;  
                      background-color:#FFCCFF;  
                      width:760px;  
                      height:500px;  
                      position:relative;  
                    }  
                    div#subwrap {  
                      position:absolute;  
                      border:1px solid #000;  
                      top:50%;  
                    }  
                    div#content {  
                      border:1px solid #000;  
                      position:relative;  
                      top:-50%;  
                    } 
                  </pre></div>  
                </div>  
              </div>  
            </body>  
          </html>
          五、完美的解決方案

          那么我們綜合上面兩種方法就可以得到一個(gè)完美的解決方案,不過這要用到CSS hack的知識(shí)。對(duì)于如果使用CSS Hack來區(qū)分瀏覽器,你可以參考這篇“簡(jiǎn)單CSS hack:區(qū)分IE6、IE7、IE8、Firefox、Opera”:

          imoker.cn(愛摩客)提供的代碼片段:

          div#wrap {  
            display:table;  
            border:1px solid #FF0099;  
            background-color:#FFCCFF;  
            width:760px;  
            height:400px;  
            _position:relative;  
            overflow:hidden;  
          }  
          div#subwrap {  
            vertical-align:middle;  
            display:table-cell;  
            _position:absolute;  
            _top:50%;  
          }  
          div#content {  
            _position:relative;  
            _top:-50%;  
          }
          至此,一個(gè)完美的居中方案就產(chǎn)生了。

          imoker.cn(愛摩客)提供的代碼片段:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
          <html xmlns="http://www.w3.org/1999/xhtml">  
            <head>  
              <title> 多行文字實(shí)現(xiàn)垂直居中 </title>  
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
              <style type="text/css">  
                body { font-size:12px;font-family:tahoma;}  
                div#wrap {  
                  display:table;  
                  border:1px solid #FF0099;  
                  background-color:#FFCCFF;  
                  width:760px;  
                  height:400px;  
                  _position:relative;  
                  overflow:hidden;  
                }  
                div#subwrap {  
                  vertical-align:middle;  
                  display:table-cell;  
                  _position:absolute;  
                  _top:50%;  
                }  
                div#content {  
                  _position:relative;  
                  _top:-50%;  
                }  
              </style>  
            </head>  
            <body>  
              <div id="wrap">  
                <div id="subwrap">  
                  <div id="content"><pre>現(xiàn)在我們要使這段文字垂直居中顯示!  
                    div#wrap {  
                      border:1px solid #FF0099;  
                      background-color:#FFCCFF;  
                      width:760px;  
                      height:500px;  
                      position:relative;  
                    }  
                    div#subwrap {  
                      position:absolute;  
                      border:1px solid #000;  
                      top:50%;  
                    }  
                    div#content {  
                      border:1px solid #000;  
                      position:relative;  
                      top:-50%;  
                    } 
                  </pre></div>  
                </div>  
              </div>  
            </body>  
          </html>
          p.s. 垂直居中vertical-align的值是middle,而水平居中align的值是center,雖然同是居中但關(guān)鍵字不同。
          posted @ 2010-08-06 10:32 賀挺 閱讀(440) | 評(píng)論 (0)編輯 收藏

               摘要:   C++            C# ===================================== WORD           &nbs...  閱讀全文
          posted @ 2010-03-20 10:40 賀挺 閱讀(7219) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 西丰县| 卓尼县| 连云港市| 洪湖市| 新源县| 绥芬河市| 资源县| 邵阳县| 宁化县| 鹤峰县| 靖安县| 外汇| 屯留县| 大兴区| 当雄县| 龙山县| 无极县| 囊谦县| 泰宁县| 教育| 沅陵县| 定西市| 嘉鱼县| 古交市| 抚远县| 合作市| 文安县| 通化县| 漳浦县| 南靖县| 寻乌县| 大余县| 余姚市| 长葛市| 郓城县| 祁东县| 贵德县| 高台县| 剑川县| 齐河县| 依兰县|